将system.collection.generic.list转换为列表

时间:2013-03-02 05:12:02

标签: linq c#-4.0 xml-parsing linq-to-xml

我正在使用解析XML文件的linq代码。这是我的代码。我想要绑定细节和图像列表。

XmlSerializer serializer = new XmlSerializer(typeof(Notchs));
      XDocument xmlDoc = XDocument.Parse(dataInXmlFile);
      Notchs notchs = (Notchs)serializer.Deserialize(xmlDoc.CreateReader());

      var query = from l in xmlDoc.Descendants("Category")
            select new Notch
            {
               name = (string)l.Attribute("name").Value,
               Titles = l.Element("Articles").Elements("article")
                         .Select(s => s.Attribute("title").ToString())
                         .ToList(),

               Image = l.Element("Articles").Elements("article").Elements("thumb_image").Elements("image")
                        .Select(x => x.Attribute("url").ToString()).ToList()
            };

      foreach (var result in query)
      {
          Console.WriteLine(result.name);
          foreach (var detail in result.Titles)
          {
              Console.WriteLine(detail);
          }
      }

      NotchsList.ItemsSource = query.ToList();

我试过这段代码,但我得到了如下的输出..但我希望细节和图片都是列表。

  name

  System.Collection.Generic.List'1[string.system]

  name

  System.Collection.Generic.List'1[string.system]

1 个答案:

答案 0 :(得分:0)

我认为你的

Titles = l.Element("Articles").Elements("article")
                                   .Select(s => s.Attribute("title").ToString())
                                   .ToList()

正在返回IEnumerable<IEnumerable<String>>。您可能需要.SelectMany而不是.Select