【C#】Find,FirstOrDefault,First,SingleOrDefault 返回匹配的第一个元素

540 阅读1分钟

Find,FirstOrDefault

相同点

两个方法,如果匹配不到元素都是返回默认值(默认值为类型T的默认值,如int类型的默认值为0,可为null的对象,默认为null)

不同点

Find时List的方法,FirstOrDefault是IEnumerable的方法
Find时建立在Array查找的,FirstOrDefault是使用foreach查找,所以Find的速度更快

IEnumerable

的First

匹配满足条件的第一个元素,如果没有匹配到,则抛出异常

IEnumerable

的SingleOrDefault

匹配满足条件的唯一元素,如果没有匹配到,则返回默认值;如果匹配到多个元素,则抛出异常

类似的,要匹配最后一个元素,可以使用List的FindLast和IEnumerable的LastOrDefault,匹配不到元素都是返回默认值