我四处搜索,并没有真正找到关于何时要使用以及何时与 LINQ 一起使用的明确答案。.First
.FirstOrDefault
.First
var result = List.Where(x => x == "foo").First();
.FirstOrDefault
var result = List.Where(x => x == "foo").FirstOrDefault();
var result = List.Where(x => x == "foo").Take(1);
网友回答:
.First
没有结果时将引发异常。 不会,它将只返回 null(引用类型)或值类型的默认值。(例如,像一个整数。这里的问题不是何时需要默认类型,而是更多:您是否愿意处理异常或处理默认值?由于异常应该是例外的,因此当您不确定是否要从查询中获得结果时,首选异常。当逻辑上数据应该存在时,可以考虑异常处理。.FirstOrDefault
0
FirstOrDefault
Skip()
通常在结果中设置分页时使用。(比如在下一页上显示前 10 个结果,以及接下来的 10 个结果等)Take()
网友回答:
当我知道或期望序列至少有一个元素时,我会使用。换句话说,当异常情况下序列为空时。First()
当您知道需要检查是否有元素时使用。换句话说,当序列为空是合法的。不应依赖异常处理进行检查。(这是不好的做法,可能会损害性能)。FirstOrDefault()
最后,和 之间的区别是返回元素本身,同时返回一个只包含一个元素的元素序列。First()
Take(1)
First()
Take(1)
网友回答:
.First()
如果没有要返回的行,将引发异常,而将返回默认值(对于所有引用类型)。.FirstOrDefault()
NULL
因此,如果您准备好并愿意处理可能的异常,那很好。如果您更喜欢检查返回值,那么是您更好的选择。.First()
!= null
.FirstOrDefault()
但我想这也是个人喜好。使用对您更有意义且更适合您的编码风格的方法。
模板简介:该模板名称为【何时使用 .First和何时使用.FirstOrDefault 在LINQ中?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。