【Distinct】: 避免重复值出现,也就是如果有两个数字2,那么使用集合类可以单一出现
首先我们来写一个数组,方便举例:
// 数组数据persons int[ ] Arr = { 25,36,25,2,3,9,55,581,21,15,44,78,96 };
-
聚合类
Console.WriteLine("arr的最大值:" + Arr.Max()); Console.WriteLine("arr的最小值:" + Arr.Min()); Console.WriteLine("arr的平均值:" + Arr.Average()); Console.WriteLine("arr的数组元素个数:" + Arr.Count()); Console.WriteLine("arr的总和:" + Arr.Sum());简单理解,就是使用的数组Arr的属性来显示想要的效果:
-
排序类,关键字ThenBy
var result = Arr.OrderBy(p => p.ToString().Substring(0,1)); //按照首个数字从小到大排序 var result = Arr.OrderBy(p => p.ToString().Substring(0,1)).ThenBy(p => p); //二次排序 //降序排列 var t = Arr.OrderBy(p => p.ToString().Substring(0,1)); var result = from p in t orderby p descending select p;三种方法,第一种显示效果就是按照第一个数字来排序的,不过此方法一般不符合要求;二则在第一次排序的基础上再次按照从小到大排序;三则是降序排列。
-
分区类:
一个take一个skip,skip则跳过之意,take则执行
var result = Arr.Skip(2).Take(3); //跳过两个再取三个的值 var result = Arr.Skip(3); //跳过三个的值,取余后的 var result = Arr.SkipWhile(p => p >1); //取出剩余的大于或者等于P之后的所有值,如p>1,所有值都满足,所以输出值为0 var result = Arr.TakeWhile(p => p > 4); //取出第一次符合条件的所有值,当遇见不符合条件的情况则停止执行在上数组中,由于每个值都大于1,所以第三个输出的值为空;最后一个到2的时候则不满足条件,停止执行,所以输出结果:
-
生成类
对于最后讲述的生成类,它并非之前的扩展方法,而是普通的静态方法
Range只能产生整数序列,Repeat只能产生泛型序列
举例:
var result = System.Linq.Enumerable.Repeat(DateTime.Now,10); //显示当前日期,和次数五大类主要包括了LinqQ的各种常用的查询方法,其他的继续在实践中学习。