在大多数情况下,我正在阅读一个 rss 提要,该提要在我的项目中具有“信用”节点。虽然在某些情况下它不存在..如何避免让对象未设置异常?我正在使用 C# 中的 linq 以这种方式阅读它
Credit = (string)item.Element(media + "credit").Value == null ? string.Empty : (string)item.Element(media + "credit").Value,
您应该在检索元素值之前检查元素是否不为空:
var creditElement = item.Element(media + "credit");
Credit = (creditElement == null) ? string.Empty : (string)creditElement.Value;
但是 Linq 足够聪明——它可以显式地将元素值转换为字符串并将缺失的元素视为 null。因此,您可以将元素转换为字符串,并使用空合并运算符分配默认值:
Credit = (string)item.Element(media + "credit") ?? String.Empty;