2010-01-02 76 views
2

我正在尝试使用.Where方法过滤项目列表,并返回与过滤器匹配的第一个项目。Linq失败而不是返回null?

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

这里是代码行我使用:

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

有没有一种方法,使除分裂这项工作两个指令?

感谢,

泰迪

回答

7

您还可能因此压缩你的语句:

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

使用FirstOrDefault()

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

感谢