我到处搜索,但对于要.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);
Single和SingleOrDefault。我讨厌人们用First真心的话Single; )
                .FirstOrDefault()Always(总是)使您有机会引发更有意义的异常。如果抛出了一个序列异常,并且.First()在一个方法中抛出了多个异常,则可能很难分辨出哪个语句是问题所在。
                

.First并且.FirstOrDefault都接受谓词作为参数,所以var result = List.Where(x => x == "foo").First();可以改写为var result = List.First(x => x == "foo");