Linq失败而不是返回null?

时间:2010-01-02 14:35:32

标签: linq

我正在尝试使用.Where方法过滤项目列表,并返回与过滤器匹配的第一项。

但是,如果没有匹配过滤器的项目,则抛出异常而不是返回null。

以下是我正在使用的代码行:

DescendantNodes.Where(dNode => dNode.InnerText.Contains("rain")).First();

有没有办法让这项工作除了分成两条指令?

谢谢,

泰迪熊

2 个答案:

答案 0 :(得分:7)

您也可以压缩您的陈述:

DescendantNodes.FirstOrDefault(dNode => dNode.InnerText.Contains("rain"));

答案 1 :(得分:4)

使用FirstOrDefault()

DescendantNodes.Where(dNode => dNode.InnerText.Contains("rain"))
                                              .FirstOrDefault();

由于