避免读取Feed中不存在的rss节点

时间:2012-12-16 06:19:36

标签: c# linq rss

我正在阅读一个rss feed,在大多数情况下我的项目中都有“credit”节点。虽然在某些情况下它不存在..我怎么避免让对象没有设置异常? 我在c#

中使用linq这样读它
Credit = (string)item.Element(media + "credit").Value == null ? string.Empty : (string)item.Element(media + "credit").Value,

1 个答案:

答案 0 :(得分:1)

在检索元素值之前,您应该检查元素是否为null:

var creditElement = item.Element(media + "credit");
Credit = (creditElement == null) ? string.Empty : (string)creditElement.Value;

但是Linq足够聪明 - 它可以显式地将元素值转换为字符串并将缺少的元素视为null。所以你可以只将元素转换为字符串,并使用null合并运算符赋值默认值:

Credit = (string)item.Element(media + "credit") ?? String.Empty;