使用LINQ将值保存到类的List中

时间:2013-11-22 20:04:43

标签: c# linq

我有一个带有字符串List ImagesUrl属性的类Item:

public class Item
{
    string Name { get; set; }
    List<string> ImagesUrl { get; set; }
    ..
}

我想解析XML文件并将每个节点项保存到var项中。在节点项中有节点img1,..,img5和右边这些我想通过使用LINQ命令保存到Img属性中:

var items = from item in xmlDocument.Descendants("item")
                select new Item
                {
                    Name = item.Element("name").Value,
                    ImagesUrl = item.Element("img1").Value, //....?
                    ..
                };

你怎么看,我不知道如何在LINQ中保存img1..5值。有人能帮助我吗?

2 个答案:

答案 0 :(得分:3)

var items = from item in xmlDocument.Descendants("item")
            select new Item
            {
                Name = item.Element("name").Value,
                ImagesUrl = Enumerable.Range(1,5).Select(x => item.Element("img"+x).Value).ToList();
            };

代码在这里不言自明。

答案 1 :(得分:2)

独立于imgX元素计数的通用解决方案

            var items = from item in Xml.Descendants("item")
                        select new Item
                        {
                            Name = item.Element("name").Value,
                            ImagesUrl = item.Elements()
                                            .Where(e => e.Name.LocalName.StartsWith("img"))
                                            .Select(e => e.Value)
                                            .ToList()
            };