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");
分类:
编程黑箱
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)