我已经四处搜寻,但还没有真正找到关于何时使用的明确答案.First
当你想使用时.FirstOrDefault
使用 LINQ。
-
您想什么时候使用.First
?仅当您想在没有返回结果的情况下捕获异常时?
var result = List.Where(x => x == "foo").First();
-
你什么时候想使用.FirstOrDefault
?如果没有结果,您总是想要默认类型?
var result = List.Where(x => x == "foo").FirstOrDefault();
-
就此而言,Take 又如何呢?
var result = List.Where(x => x == "foo").Take(1);
我会用First()
当我知道或期望序列至少有一个元素时。换句话说,当出现异常时,序列为空。
Use FirstOrDefault()
当您知道需要检查是否存在某个元素时。换句话说,当序列为空时是合法的。您不应依赖异常处理来进行检查。 (这是不好的做法,可能会损害性能)。
最后,两者的区别First()
and Take(1)
就是它First()
返回元素本身,而Take(1)
返回仅包含一个元素的元素序列。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)