1、Cast运算符,拓展方法,接受一个非泛型集合作为输入,并返回一个泛型类型
语法示例:public static IEnumerable<TResult> Enumerable.Cast<TResult>(this IEnumerable source)
2、OfType运算符,接受一个非泛型集合,并返回一个非泛型集合。TResult泛型参数的目的是目标类型,其他类型被排除在外,不会被复制到新的泛型集合中
语法:public static IEnumerable<TResult> OfType<TResult>(this IEnumerable source)
3、LINQ查询表达式语法
4、LINQ
1、实现LINQ的核心库是System.Core.Dll库,System.XML.Linq.Dll库支持LINQ to XML,而System.Data.Linq.Dll支持LINQ to DataSet
2、
5、LINQ运算符
1、聚合运算符:基于一个集合计算出一个标量值
Aggregate:使用自定义的累加器函数执行聚合运算。该函数为每个元素调用,collection.Aggregate((accumulator,value) => accumulator += value)
Average:计算一个集合的平均值,collection.Average()
Count:计算一个集合中的元素个数,collection.Count()
LongCount:计算一个大型集合中的元素数量,它返回一个Int64值,collection.LongCount()
Max:一个集合中的最大值,collection.Max()
Min:一个集合中的最小值,collection.Min()
Sum:一个集合中的元素之和,collection.Sum()
2、连接运算符
Contact:唯一的连接运算符,它连接两个集合或两个序列,collection1.Contact(collection2)
3、数据类型转换运算符
AsEnumerable:对于可查询的对象,返回不同的IEnumerable<T>接口实现,collection.AsEnumerable()
AsQueryable:对于可枚举的对象,返回不同的IQueryable<T>接口实现,collection.AsQueryable()
Cast:将一个非泛型的可枚举的集合转换成一个指定类型的泛型可枚举集合,collection.Cast<Type>()
OfType:仅从集合中返回与指定类型相关的元素,collection.OfType<Type>()
ToArray:将一个集合转换为一个数组,查询表达式立即求值,collection.ToArray<int>()
ToDictionary:将一个集合转换为一个字典,查询表达式立即求值,collection.ToDictionary(d => d.key)
ToList:将一个集合转换为一个列表,查询表达式立即求值,collection.ToList()
ToLookup:将一个集合转换为一个查找表。查询表达式立即求值,collection.ToLookup(d => d.key)
4、元素运算符
ElementAt:返回指定索引处的元素,collection.ElementAt(index)
ElementAtOrDefault:返回指定索引处的元素,如果索引超过边界就返回一个默认值(0或null),collection.ElementAtOrDefault(index)
First:返回一个集合的第一个元素,collection.First()
FirstOrDefault:返回一个集合的第一个元素。若集合中不包含任何元素,则返回默认值(0或null),collection.FirstOrDefault()
Last:返回一个集合的最后一个元素,collection.First()
LastOrDefault:返回一个集合的最后一个元素。若集合中不包含任何元素,则返回默认值(0或null),collection.FirstOrDefault()
Single:确认某集合只有一个元素。如果该集合并非正好只有一个元素,则会引发异常,collection.Single()
SingleOrDefault:确认某集合只有一个元素。如果该集合并非正好只有一个元素,则会返回默认值。否则,返回该集合的唯一元素,collection.SingleOrDefault()
5、等于运算符
collection1.SequenceEqual(collection2)
6、筛选运算符
7、生成运算符
DefaultIfEmpty:如果集合是空的,则创建一个单一实例集合。否则,返回该集合,collection.DefaultIfEmpty()
Empty:创建一个空集合,这是一个静态方法。Enumerable.Empty<Type>()