C# 使用LINQ填写列表<;对象>;从xml

C# 使用LINQ填写列表<;对象>;从xml,c#,linq,xaml,C#,Linq,Xaml,我是LINQ的新手。我需要用xml中的信息填写下一个类的列表 class Person { int id; string name; string address; } List<Person> people = new List<Person>(); 班级人员 { int-id; 字符串名; 字符串地址; } 列表人员=新列表(); 在LINQ中,正确的方法是什么 <Company> ... ...<!--Lot

我是LINQ的新手。我需要用xml中的信息填写下一个类的
列表

class Person
{
    int id;
    string name;
    string address;
}

List<Person> people = new List<Person>();
班级人员
{
int-id;
字符串名;
字符串地址;
}
列表人员=新列表();
在LINQ中,正确的方法是什么

 <Company>
  ...
  ...<!--Lot of items -->
  ...
  <People>      <!--People appears only once -->
        <Instance>
            <ID>1</ID>
            <Name>NameA</Name>
            <Address>AddressA</Address>         
        </Instance>
        <Instance>
            <ID>2</ID>
            <Name>NameB</Name>
            <Address>AddressB</Address>         
        </Instance>
        ..
        ..
 </People>
</Company>

...
...
...
1.
纳米亚
地址
2.
名字
地址B
..
..

我需要知道LINQ表达式的结构才能直接到达
标记。此外,是否有任何快捷方式可用于填写
列表',即将
Person
映射到
Instance`标记

我希望您知道,您需要将字段(或者更好地将其设置为属性)公开,以便能够填充对象值。类字段中缺少公共修饰符

var doc = XDocument.Parse(xmlString);
List<People> people = doc.Descendants("People")
                      .FirstOrDefault()
                      .Descendants("Instance")
                      .Select(p=> new Person()
                                  {
                                      ID = p.Element("ID").Value, 
                                      Name = p.Element("Name").Value, 
                                      Address=p.Element("Address").Value
                                   }).ToList();
var doc=XDocument.Parse(xmlString);
列表人员=文档后代(“人员”)
.FirstOrDefault()
.后代(“实例”)
.选择(p=>newperson()
{
ID=p.元素(“ID”).值,
名称=p.元素(“名称”).值,
地址=p.元素(“地址”).值
}).ToList();

这里有一个关于如何使用的教程

同意@Hasan Khan的答案,但您还需要在person类中公开字段,以便可以实例化它们。您可以使用自动属性,例如:

    class Person
    {
        public int Id { get; set; }
        public string Address { get; set; }
        public string Name { get; set; }
    }