2013-11-22 1 views
0

У меня есть класс товар со строковым Список ImagesUrl собственности:значения Сохранение в список в классе с помощью LINQ

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

И я хочу, чтобы разобрать XML-файл и сохранить каждый элемент узла в элементы вар. В пункте узла есть узлы img1, .., img5 и право это я хочу сохранить в собственность Img с помощью команды LINQ, как это:

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

Как вы можете видеть, я не знаю, как я мог сохраните значения img1..5 в LINQ. Может кто-нибудь мне помочь?

ответ

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

Код здесь сам по себе.

+0

Спасибо, мой друг! :) – Emetrop

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() 
      };  
Смежные вопросы