LINQ中什么时候使用First()而不是FirstOrDefault()?

结论:
当你确定或期望序列中至少包含一个元素时,使用.First()。
当数据源无法确定,你需要检查是否存在一个元素时,使用.FirstOrDefault()。所以如果无法确定是否能够得到结果时首选FirstOrDefault,处理默认值。

使用场景:
考虑使用First(),如果:
1、总是期望返回序列的第一个元素
2、当结果没有元素或源为NULL时,期望抛出一个错误

考虑使用FirstOrDefault(),如果:
1、返回序列的第一个元素,如果没有找到元素,则返回类型默认值。
2、只有源为NULL时才抛出错误
3、类型默认值也是可以接受的

概念:
Enumerable.First:返回序列中的第一个元素
Enumerable.FirstOrDefault:返回序列中的第一个元素;如果未找到该元素,则返回默认值。

栗子:
string[] arrStr={"Hello","World" };

var first = arrStr.First();
Console.WriteLine(first);

var firstOrDefault= arrStr.FirstOrDefault(o=>o=="TouTiao");
Console.WriteLine(string.IsNullOrEmpty(firstOrDefault) ? "not exists TouTiao" : "exists TouTiao");
posted @   wzyandi  阅读(200)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示