§ ITPOW >> 文档 >> C#

IEnumerable 中 Single、SingleOrDefault、First、FirstOrDefault、Last、LastOrDefault 区别

作者:vkvi 来源:ITPOW(原创) 日期:2020-10-16

C# 中:

List<int> list = new List<int>();
int n = list.Single(m => m == 3); // 异常:序列不包含任何匹配元素
Response.Write(n);

List<int> list = new List<int>();
list.Add(3);
list.Add(3);
int n = list.Single(m => m == 3); // 异常:序列包含一个以上的匹配元素
Response.Write(n);

List<int> list = new List<int>();
int n = list.SingleOrDefault(m => m == 3);
Response.Write(n); // 0

总结:


找不到找到一个找到多个
Single异常返回该元素异常
SingleOrDefault返回 T 类型对应的默认值*返回该元素异常
First异常返回该元素返回第一元素
FirstOrDefault返回 T 类型对应的默认值*返回该元素返回第一元素
Last异常返回该元素返回最后一个元素
LastOrDefault返回 T 类型对应的默认值*返回该元素返回最后一个元素

*

如果 T 是基本类型,找不到返回的是基本类型的默认值,比如 int 为 0。

如果 T 是 DateTime,也是按照基本类型来的,找不到返回的是 0001-1-1。

如果 T 是引用类型,找不到返回 null

相关文章