您的位置:首页 > 编程语言 > C#

C#学习经典方法之(七)---List的FirstOrDefault

2016-12-14 10:55 197 查看
集合中方法:
·First - 返回集合中的第一个元素;不延迟

·FirstOrDefault - 返回集合中的第一个元素(如果没有则返回默认值);不延迟

·Last - 返回集合中的最后一个元素;不延迟

·LastOrDefault - 返回集合中的最后一个元素(如果没有则返回默认值)

·ElementAt - 返回集合中指定索引的元素;不延迟

·ElementAtOrDefault - 返回集合中指定索引的元素(如果没有则返回默认值);不延迟

·Contains - 判断集合中是否包含有某一元素;不延迟

·Any - 判断集合中是否有元素满足某一条件;不延迟

·All - 判断集合中是否所有元素都满足某一条件;不延迟

·Count - 返回集合中的元素个数,返回int;不延迟

·LongCount - 返回集合中的元素个数,返回long;不延迟

·Sum - 集合应为数字类型集合,求其和;不延迟

·Min - 返回集合的最小值;不延迟

·Max - 返回集合的最大值;不延迟

·Average - 集合应为数字类型集合,求其平均值;不延迟

·Aggregate - 根据输入的表达式获取一个聚合值;不延迟

·Cast - 将集合转换为强类型集合;延迟

·DefaultIfEmpty - 查询结果为空则返回默认值;延迟

·SequenceEqual - 判断两个集合是否相同;不延迟

·OfType - 过滤集合中的指定类型;延迟

·ToArray - 将集合转换为数组;不延迟

·ToList - 将集合转换为List<T>集合;不延迟

·ToDictionary - 将集合转换为<K, V>集合;不延迟

********************************
List中函数用法:First,FirstOrDefault,Single,SingleOrDefault的区别

操作符
如果源序列是空的
源序列只包含一个元素
源序列包含多个元素
First
抛异常
返回该元素
返回第一个元素
FirstOrDefault
返回default(TSource)
返回该元素
返回第一个元素
Last
抛异常
返回该元素
返回最后一个元素
LastOrDefault
返回default(TSource)
返回该元素
返回最后一个元素
Single
抛异常
返回该元素
抛异常
SingleOrDefault
返回default(TSource)
返回该元素
抛异常
很明显,如果输入序列只有一个元素的话,这几个操作符的执行结果是非常一致的:) 类似的,如果输入的序列是空的的话,那么没有“OrDefault”的操作符会抛异常(InvalidOperationException),而带有“OrDefault”的操作符则会返回元素类型的默认值(引用类型的默认值为null,int的默认值为0,等等)。
如果(可能是被过滤过的)输入序列含有多个元素的话,那这些操作符的执行结果的差异是很大的,First和Last的结果是顾名思义的,而Single抛出异常。值得注意的是,SingleOrDefault也会抛出异常,因为它要做的事又不是像这样:如果输入序列只有一个元素的话,返回该元素,否则的话返回默认值。如果你需要能够处理多元素序列的操作符的话,用First或Last。如果你需要处理可能为空的序列的话,使用FirstOrDefault或LastOrDefault。请注意,如果使用带有“OrDefault”的操作符的话,那么一个空的序列和一个仅包含默认值的序列的执行结果会是完全一样的。

备注:转自http://blog.sina.com.cn/s/blog_710faf420102waov.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息