Ahm*_*asi 4 c# linq asp.net asp.net-mvc
如何填补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; }
}
Run Code Online (Sandbox Code Playgroud)
这是查询
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
};
Run Code Online (Sandbox Code Playgroud)
更新 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>
Run Code Online (Sandbox Code Playgroud)
您只需要在查询中进行另一个查询.例如,如果channel元素包含item元素,那么您可以:
Items = feed.Elements("item")
.Select(x => new Item { // set property values })
.ToArray()
Run Code Online (Sandbox Code Playgroud)
更新:您似乎正在阅读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()
};
Run Code Online (Sandbox Code Playgroud)
此外,我使用显式转换而不是尝试Value直接访问属性以防止NullReferenceException.
| 归档时间: |
|
| 查看次数: |
1731 次 |
| 最近记录: |