2014-02-07 117 views
3

如何填寫Object ArrayLINQ Query填充對象數組

這裏是我的數據模型

public class Test 
    { 
     public string Link { get; set; } 
     public string Title { get; set; } 
     public string Description { get; set; } 
     public Item[] Items { get; set; } 
    } 

public class Item 
    { 
     public string Title { get; set; } 
     public string Link { get; set; } 
     public string Guid { get; set; } 
     public DateTime PublishDate { get; set; } 
     public string Description { get; set; } 
    } 

這裏是查詢

var data = from feed in feedXml.Descendants("channel") 
         select new Rss 
         { 
          Title = feed.Element("title").Value, 
          Link = feed.Element("link").Value, 
          Description = feed.Element("description").Value, 
          Items = // here i have to fill the array of items 
         }; 

UPDATE XML甲酸鹽

<channel> 
    ..... 
    <item>.....</item> 
    <item>.....</item> 
    <item>.....</item> 
</channel> 
<channel> 
    ..... 
    <item>.....</item> 
    <item>.....</item> 
    <item>.....</item> 
</channel> 
<channel> 
    ..... 
    <item>.....</item> 
    <item>.....</item> 
    <item>.....</item> 
</channel> 
+0

提供您的xml文件格式。 –

回答

5

你只需要在你的查詢中做另一個查詢。例如,如果channel元素包含item元素,那麼你可以這樣做:

Items = feed.Elements("item") 
      .Select(x => new Item { // set property values }) 
      .ToArray() 

更新:看來你正在閱讀一個RSS文件,所以您的查詢應該是這樣的:

var data = from feed in feedXml.Descendants("channel") 
      select new Rss 
      { 
       Title = (string) feed.Element("title"), 
       Link = (string) feed.Element("link"), 
       Description = (string) feed.Element("description"), 
       Items = feed.Elements("item") 
        .Select(
         x => 
          new Item 
          { 
           Title = (string) x.Element("title"), 
           Link = (string) x.Element("link"), 
           Description = (string) x.Element("description"), 
           Guid = (string) x.Element("guid"), 
           PublishDate = (DateTime) x.Element("pubDate") 
          }) 
        .ToArray() 

      }; 

我也有使用顯式轉換,而不是試圖直接訪問Value屬性,以防止NullReferenceException

+0

查看更新中的xml formate –

+0

@AhmadAbbasi實際上我的意思是項目元素的格式。但沒關係看到我的更新,如果元素名稱錯誤,您可以更改它。至少您現在必須有一個想法:) –