c# - Linq 多元素选择

标签 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>

所以我尝试解析这些数据并使用结果创建我的 View 模型人员对象。这是我的 View 模型的示例。

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(),
             };

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

最佳答案

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

关于c# - Linq 多元素选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6103361/

相关文章:

c# - 如果 Sum() 值返回 Null 使用 0,当前是否将其强制转换为可为 null 的 double 值?

c# - 为什么按钮的 .CausesValidation 默认设置为 True?

c# - ArgumentException: 给定的端口名称不以 COM/com 开头或未解析为有效的串行端口

java - 您如何使用简单的自定义转换器访问字段注释?

c# - 在 EF6 中将匿名类型转换为 IEnumerable<>

c# - 汇总一个集合的所有属性并动态赋值给另一个对象

c# - .net core 上的 sqlite 发布到 azure 失败

c# - 如何使用命令行代码终止进程

java - 如何更改 BottomNavigationView 中特定项目的 iconTint

xml - 比较忽略子元素顺序的 XML