小编典典

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

all

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

阅读 96

收藏
2022-03-01

共1个答案

小编典典

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

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

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

2022-03-01