如何在Object Array
LINQ 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
};
更新 xml formate
<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 :(得分: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
。