微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

何时使用.First以及何时将.FirstOrDefault与LINQ结合使用?

如何解决何时使用.First以及何时将.FirstOrDefault与LINQ结合使用?

First()当我知道或期望序列具有至少一个元素时,我会使用。换句话说,当序列异常为空时,则为空。

使用FirstOrDefault()时,你知道你需要检查是否有一个元素或没有。换句话说,在合法的情况下,序列为空。您不应依赖异常处理来进行检查。(这是不好的做法,可能会损害性能)。

最后,和之间的区别在于First()Take(1)First()返回元素本身,而Take(1)返回的元素序列只包含一个元素。

解决方法

我到处搜索,但对于要.First何时使用.FirstOrDefaultLINQ 和何时要使用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);
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。