0

在大多数情况下,我正在阅读一个 rss 提要,该提要在我的项目中具有“信用”节点。虽然在某些情况下它不存在..如何避免让对象未设置异常?我正在使用 C# 中的 linq 以这种方式阅读它

Credit = (string)item.Element(media + "credit").Value == null ? string.Empty : (string)item.Element(media + "credit").Value,
4

1 回答 1

1

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

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

但是 Linq 足够聪明——它可以显式地将元素值转换为字符串并将缺失的元素视为 null。因此,您可以将元素转换为字符串,并使用空合并运算符分配默认值:

Credit = (string)item.Element(media + "credit") ?? String.Empty;
于 2012-12-16T18:34:41.607 回答