var entries = from video in Video.GetTopVideos().AsEnumerable()
select
new XElement("item",
new XElement("title", video.Title),
new XElement("category", video.Tags[video.Tags.Count-1].Name),
//...........
如果属性video.Tags == null则抛出异常。 我可以检查空值吗?
答案 0 :(得分:2)
是的,你可以。您可以将该行重写为
video.Tags != null ? new XElement(...) : null
如果Tags
为空,则不会在生成的XML中为XElement
发出category
。当然,如果愿意,您可以选择提供另一个默认元素而不是null。
答案 1 :(得分:2)
是的,你可以:
var entries = from video in Video.GetTopVideos().AsEnumerable()
where video.Tags != null
select
new XElement("item",
new XElement("title", video.Title),
new XElement("category", video.Tags[video.Tags.Count-1].Name),
//...........
或者,如果您想确保即使Tags
属性为null
也总是有某些内容:
var entries = from video in Video.GetTopVideos().AsEnumerable()
let cat = (video.Tags != null && video.Tags.Count > 0) ? video.Tags[video.Tags.Count-1].Name : "**No Category**
select
new XElement("item",
new XElement("title", video.Title),
new XElement("category", cat),
//...........
答案 2 :(得分:0)
添加一个where子句,声明:
其中video.Tags!= null
这会将结果限制为仅包含标记的结果。
您的查询最终将如下所示:
var entries = from video in Video.GetTopVideos().AsEnumerable()
where video.Tags != null
select new XElement("item",
new XElement("title", video.Title),
new XElement("category", video.Tags[video.Tags.Count-1].Name),
//...........