LINQ查询方法:
1、Method Syntax查询方法方式:主要利用System.Linq.Enumerable类定义的拓展方法和Lambda表达式方法进行查询。
2、Query Syntax查询语句方式。
查询语句和查询方法的关系:编译器负责在编译时将查询语句便以为查询方法,大部分的查询方法都有对应的查询语句姓氏。一般情况下,我们会使用查询语句+查询方法的混合方式进行查询。
常见的高级查询方法分为:聚合、排序、分区、集合、生成。
Ⅰ聚合类:
<span style="font-size:18px;"> //高级方法---聚合类 //数组数据persons int[] arr = { 234, 36, 47, 25, 14, 467, 251235, 135, 35 }; //聚合类 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()); </span>
Ⅱ排序类:
<span style="font-size:18px;"> //数组数据persons int[] arr = { 234, 36, 47, 25, 14, 467, 251235, 135, 35 }; //排序类 var result = arr.OrderBy(p=>p.ToString().Substring(0,1)); result.Print(); </span>
Print方法代码:
<span style="font-size:18px;"> public static void Print(this IEnumerable<int> ie) { IEnumerator<int> result = ie.GetEnumerator(); Console.WriteLine("\n------------------------\n"); while(result.MoveNext()) { Console.WriteLine(result.Current); } Console.WriteLine("\n------------------------\n"); } </span>
用查询语句排序:
<span style="font-size:18px;"> var result = arr.OrderBy(p => p.ToString().Substring(0, 1));</span>
用2次排序:
<span style="font-size:18px;"> var result = arr.OrderBy(p=>p.ToString().Substring(0,1)).ThenBy(p=>p);//2次排序 </span>
Ⅲ分区类
<span style="font-size:18px;"> //分区类(分页的时候用到的会很多) var result = arr.Skip(3).Take(3); result.Print(); </span>
代码为:
<span style="font-size:18px;"> var result = arr.SkipWhile(p => p > 4);//方法体部分是该linq语句不再往后执行的条件。 result.Print(); </span>
<span style="font-size:18px;"> var result = arr.SkipWhile(p => p > 4);//方法体部分是该linq语句不再往后执行的条件。当第一次聚到条件成立时立即取出 </span>
查询为空就对了。
<span style="font-size:18px;"> var result = arr.TakeWhile(p => p > 4);//方法体部分是该linq语句提取数据的条件,当第一次遇到条件不成立的情况就停止执行。 result.Print(); </span>
查询结果:
Ⅳ集合类
<span style="font-size:18px;"> //集合类 var result = arr.Distinct(); result.Print(); </span>
Ⅴ生成类--静态方法
<span style="font-size:18px;"> var result = System.Linq.Enumerable.Range(10,50); result.Print(); </span>
这个运行的结果是从10到59的50个数。
时间: 2024-10-18 12:24:28