首页 > C# > 何时使用 .First和何时使用.FirstOrDefault 在LINQ中?

何时使用 .First和何时使用.FirstOrDefault 在LINQ中?

上一篇 下一篇

我四处搜索,并没有真正找到关于何时要使用以及何时与 LINQ 一起使用的明确答案。.First.FirstOrDefault

  • 您想什么时候使用?仅当您想要捕获异常时,如果没有返回结果?.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没有结果时将引发异常。 不会,它将只返回 null(引用类型)或值类型的默认值。(例如,像一个整数。这里的问题不是何时需要默认类型,而是更多:您是否愿意处理异常或处理默认值?由于异常应该是例外的,因此当您不确定是否要从查询中获得结果时,首选异常。当逻辑上数据应该存在时,可以考虑异常处理。.FirstOrDefault0FirstOrDefault

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#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 184次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 03-01
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
微信图片 微信模板 微信文章 微信素材 响应式 单页式简历模板 自适应 企业网站 html5 微信公众平台
您可能会喜欢的其他模板