C#语言中Linq扩展方法的使用
C# Linq
任何来源于Ienumerable<TSource>接口的数据结构都能访问这个方法
Where(x => x.length>3)
Select(x=>x)
All<string>(x=>x.length>3) 确定是否所有元素序列都满足某种条件,如果每一个元素都可以满足设定的特殊条件或者它是空,则方法返回true,否则返回false。
Any<string>(x=>x.length>3) 确定序列中的元素是否存在或者满足某种特定的条件
Average() Average 计算在序列中的数字的平均值
Average(x=>x*2)
Concat<>() 连接(拼接)两个序列.
listOne.Concat(listTwo).ToList();
Contains
用来判断在一个序列(集合)中是否存在一个特殊的元素.这个方法有两种重载方式,第一种是通过默认的比较器来判断序列(集合)中是否有特殊的元素,
另外一种是通过自定义IEqualityComparer<T>来确定序列(集合)中是否有特殊的
listOne.Contains(2);
Count 将返回序列(集合)中元素的个数
两个重载方法将会做如下操作.第一种重载直接返回序列(集合)中元素的个数,第二种重载返回一个数字,表示在序列(集合)中有多少元素满足指定的条件。
listOne.Count();
listOne.Count(item => item.Length > 3);
DefaultIfEmpty()
第一种重载将返回指定的元素序列(集合)或者当序列(集合)为空的情况下返回一个单例集合中类型参数的默认值.
第二种重载将返回指定的元素序列(集合)或者在序列(集合)为空的情况下返回一个单例集合中特定的值.
listOne.DefaultIfEmpty()
Distinct 将从序列(集合)中返回去重复(Distinct)元素
第一种重载通过默认比较器从序列(集合)中返回去重复的元素。第二种重载通过使用自定义IEquaityComparer<T>从序列(集合)中返回去重复的元素。
这个方法将会从列表(集合)中返回同一的项。如果我们有一个包含重复项的列表(集合),那么这个方法将会过滤掉重复的项并返回一个只包含单一值的新列表(集合)。
listOne.Distinct().ToList()
ElementAt(index) 在序列(集合)中,这个方法返回一个特定索引的一个元素.
ElementAtOrDefault
Empty 回一个指定类型参数的空Ienumerable<T>.
var list = Enumerable.Empty<int>();
Except() 可以用在从一个集合中删除一个项集合.它放回一个由两个序列产生的集合差.
第一种重载是利用默认的比较器生成两个序列的集合差.
比如,我有个由{1,2,3,4,5,6,7}组成的集合A和由{1,2,3}组成的集合B,A 除了(except) B 将会输出{4,5,6,7}
第二种重载是利用IEQualityComparer<T>生成两个序列的集合差.
firstNumbers.Except(secondNumbers).ToList(
First 返回序列中的第一个元素.
第一种重载将找出在序列中的第一个元素. numbers.First();
第二种重载将根据条件找出第一个元素. numbers.First(item => item > 3);
FirstOrDefault
它返回序列中第一个元素或者当没有元素未被找到时放回默认值.这个方法是First和Default的综合
Union 将会Union(并集)两个序列(集合).
例如,我们有两个集合,A={1,2,3,4,5,6,7}和B={5,6,7,8,9},并集A和B则返回{1,2,3,4,5,6,7,8,9}.在.NET中,它将连接两个列表(集合)并生成一个新列表(集合).
var result = firstList.Union(secondList);
Intersect 将产生两个序列的交集
第一种重载将会利用默认平等比较器来创建两个序列的交集,
第二种重载是利用IEqualityComparet<T>比较器去比较值然后产生两个序列的交集.它产生两个序列的交集.这个交集将会包含在两个列表中相同的元素.
例如,如果我们有一个A列表{1,2,3,4,5}和B列表{4,5},取两者交集之后就会生成{4,5}.
var intersectResult = listA.Intersect(listB);
Last 它返回序列中最后一个元素.
第一种重载将会找出在序列中最后一个元素. numbers.Last();
第二种重载将根据条件找出最后一个元素. numbers.Last(item => item > 3);
LastOrDefault
它返回序列中最后一个元素或者当没有元素未被找到时放回默认值.这个方法是Last和Default的综合
LongCount 返回一个Int64去表示序列中元素的个数
第一种重载放回一个Int64,表示在序列中一共有多少个元素.
第二种重载是根据条件放回一个Int64,表示在条件范围内一共有多少个元素.