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

何时使用 .First 以及何时将 .FirstOrDefault 与 LINQ 一起使用?

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

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

FirstOrDefault()当您知道需要检查是否存在元素时使用。换句话说,什么时候序列为空是合法的。您不应该依赖异常处理来进行检查。(这是不好的做法,可能会损害性能)。

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

解决方法

我四处搜索,并没有真正找到关于何时要使用.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);
    

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