1行で十分です。
var people=XDocument.Load(path).Root.Elements().Select(y => y.Elements().ToDictionary(x => x.Name, x => x.Value)).ToArray();
テスト用に次の名前空間を指定する必要があります
using System.Xml.Linq;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
テストコード
var path=@"c:\people.xml";
var people=XDocument.Load(path).Root.Elements().Select(y => y.Elements().ToDictionary(x => x.Name, x => x.Value)).ToArray();
foreach(var person in people) {
Console.WriteLine("name = {0}", person["name"]);
Console.WriteLine("name = {0}", person["age"]); // requires person have a age defined in your xml file
}
テスト用のサンプル xml
<people>
<person>
<name>Humbert Humbert</name>
<age>36</age>
</person>
<person>
<name>Lolita</name>
<age>12</age>
</person>
</people>