LINQ高級查詢

LINQ高級查詢方法

一、聚合類

Count(),Max()/Min(),Average()
Count方法:返回集合項的數目,集合中的元素數量
Max/Min方法:求集合中的最大值或者最小值
Average方法:求集合中所有數據的平均值
Sum方法:求集合的所有數的總和

			 int[] nums = { 5, 24, 15, 6, 37, 17, 8, 4, 3, 8 };
             //總項數
             var res = (from item in nums select item).Count();
             Console.WriteLine("集合總項數:"+res);
             //最大值
             var res1 = (from item in nums select item).Max();
             Console.WriteLine("集合中最大值爲:"+res1);
             //最小值
             var res2 = (from item in nums select item).Min();
             Console.WriteLine("集合中最小值爲:" + res2);
             //平均值
             var res3 = (from item in nums select item).Average();
             Console.WriteLine("集合的平均值爲:" + res3);
             //總和
             var res4 = (from item in nums select item).Sum();
             Console.WriteLine("集合的總數爲:"+res4);
             //第一個項值
             var res5 = (from item in nums select item).First();
             Console.WriteLine("集合第一個元素值爲:"+res5);
     Console.ReadLine();

執行結果:
在這裏插入圖片描述

二、排序類

ThenBy()
ThenBy方法:提供複合排序條件,爲排序方法提供更多的排序字段

	var list = stulist3.OrderBy(item => item.StuAge).ThenBy(item=>item.StuName);//先按照年齡從大到小排序,再按照姓名拼音首字符排序
    foreach (var item in list)
    {
        Console.WriteLine(item.StuName);
    }		 
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

三、分區類

Take(),TakeWhile(),Skip(),WkipWhile()
Take方法:從集合中的開頭提取指定數量的元素
Skip方法:跳過指定數量的元素,並獲取剩餘數量的元素
TakeWhile方法:只要滿足指定的條件,就會返回序列的元素,然後跳過剩餘的元素
SkipWhile方法:只要滿足指定的條件,就會跳過序列中的元素,然後返回剩餘的元素
Take()案例

	int[] numb = {23,5,1,6,3,16,10,2,7,9 };
    //Take() 查詢集合前幾項
    var list = numb.Take(4);
    foreach (var item in list)
    {
        Console.Write( " "+item);
    }	 
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

Skip()案例

	int[] numb = {23,5,1,6,3,16,10,2,7,9 };
    //Skip() 除前幾項剩餘的項
    var list2 = numb.Skip(3);
    foreach (var item in list2)
    {
        Console.Write( " "+item);
    }	 
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

TakeWhile()案例

	int[] numb = {23,5,1,6,3,16,10,2,7,9 };
    // TakeWhile()
    var list3 = numb.TakeWhile(item=>item%3!=0);
    foreach (var item in list3)
    {
        Console.Write( " "+item);
    }	 
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

SkipWhile()案例

	int[] numb = {23,5,1,6,3,16,10,2,7,9 };
     // SkipWhile()
     var list4 = numb.SkipWhile(item => item % 2 != 0);
    foreach (var item in list4)
    {
        Console.Write( " "+item);
    }	 
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

四、集合類

Distinct()
Distinct方法:去掉集合中的重複元素

	int[] list = { 1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 2, 3, 4, 6, 7, 5, 8, 9 };
    var res = list.Distinct();
    foreach (var item in res)
    {
        Console.WriteLine(" "+item);
    }	 
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

五、生成類

Range(),Repeat()
Range方法:生成一個整數序列
Repeat方法:生成一個重複項的序列
Range只能產生整數序列
Repeat可以產生泛型序列
所有的查詢方法都存放在System.Linq.Enumerable靜態類中
Ranage()案例

	 var list1=
     Enumerable.Range(1,5);
     foreach (var item in list1)
     {
         Console.Write(" "+item);
    } 
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

	 var list2 = Enumerable.Repeat(new int[] {1,2,3 },3);
     foreach (var item in list2)
     {
         Console.WriteLine("---------");
     	foreach (var i in item)
     	{
           Console.WriteLine(" "+i);
         }
    }
    Console.ReadLine();

執行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章