我正在阅读一个rss feed,在大多数情况下我的项目中都有“credit”节点。虽然在某些情况下它不存在..我怎么避免让对象没有设置异常? 我在c#
中使用linq这样读它Credit = (string)item.Element(media + "credit").Value == null ? string.Empty : (string)item.Element(media + "credit").Value,
答案 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;