Linq多元素选择

时间:2011-05-23 21:37:39

标签: c# xml linq select

我认为我对LINQ有很好的理解,然而,我在从XML文件中选择多个元素时遇到了绊脚石。以下是XML数据的示例。

<Person>
     <Addresses>
       <Address>1021 E. Ray Rd</Address>
       <Address>453 E. John Rd</Address>
     </Addresses>
     <Picture>www.testpic.com/pic/2834723</Picture>
</Person>

所以我试图解析这些数据并用结果创建我的viewmodel person对象。以下是我的视图模型示例。

Public class personmodel
{
   public string picURI {get;set;}
   public List<string> addressLst {get;set;}
}

有关如何使用多个地址元素填充addressLst的任何见解?这就是我想要做的事情..

var xmlPeople = XElement.Parse(document)

var person = from personfile in xmlPeople.Descendants("Person")
             select new personmodel
             {
               picURI = (string)personfile.Element("Picture"),
               addressLst = personfile.Descendants("Addresses").Select(item =>item.Element("Address").Value.ToList(),
             };

这可以抓取Addresses元素下的第一个元素,并将其添加到艺术家列表中。如何扩展它以将所有地址元素添加到列表中?任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:3)

addressLst = personfile.Descendants("Addresses").Elements("Address")
                      .Select( a => a.Value).ToList()