LINQ知識點

linq中select()實現了一種投影操做,能夠進行對象類型轉換
Takewhile()和skipwhile有點相似,只不過當where()遇到不符合條件的元素是,會繼續查找序列中知足條件的下一個元素,直到序列結束,而takewhile在遇到不符合條件的元素時會直接返回前面的查找到的符合條件的元素
skipwhile是takewhile的反操做,會一直跳過符合條件的元素,知道遇到第一個不符合條件的元素,而後返回鈣元素以後的全部元素構成的序列
Intersect返回兩個序列中相同元素組成的序列
Except返回第一個序列中有二第二個序列中沒有的元素
concat運算符用於鏈接兩個序列
union運算符也用於連接兩個序列,但那時會提出相同的項目
zip()對兩個序列中位置相同的兩個元素進行操做,給予兩個元素的操做結果返回一個新的元素,若是兩個序列的長度不想等, 則以長度短的爲準
-----------------------------------------------------------------------
Toarray(),Tolist(),ToDictionary(),ToLookUp()四個方法用於將IEnumerable<T>轉換爲響應的類型,再轉換是,會執行遍歷
ElementAt()以序列中元素的位置做爲參數,返回鈣元素,若是元素不存在,就拋出異常
ElemnetAtOrDefault()在元素不存在時趕回該類型的默認值,對於引用類型來講,其默認值爲null
SIngle()與First()相似,只不過Single要求序列中有且只有一個知足條件的項,若是知足條件的有兩項,則會拋出異常,SingleOrDefault要求有一個或零個男足條件的項,當知足條件項爲0時,返回默認值
Aggregate()運算符用於返回自定義的聚合()
Contains()判斷某一個元素是否存在於序列中
Any()判斷序列中是否存在知足表達式的元素,只要有一個元素知足,則返回true,當調用無參數的重載方法時,Any用於判斷序列中是否包含元素
All()判斷序列中全部的元素是否都知足表達式,只要有一個元素不能知足,則返回false
SequenceEqual()用於逐項比較兩個序列,當兩個序列中的元素數目相同,而且序列中相同位置的元素也相同時,返回True不然返回False數組

 1  Pretion<int> sd = x => x == 4;
 2             Pretion<string> str = s => { return s == "8"; };
 3             //若是沒有使用花括號,默認的會把方法返回值返回,若是使用了{}就會把須要「return」的返回出去
 4 
 5             IList<Pro123> product = new List<Pro123>() {
 6                 new Pro123 { Name = "生活與科學", Price = 3.23 },
 7                 new Pro123 { Name = "大天然", Price = 5.23 },
 8                 new Pro123 { Name = "夢想與彩虹", Price = 8.23},
 9                 new Pro123 { Name = "大人魚", Price = 6.23 }
10             };
11             var query = from a in product
12                         where a.Price >= 4 && a.Price < 7
13                         orderby a.Price descending
14                         select new { name = a.Name, price = a.Price }//select()實現的是投影操做
15                         ;
16             foreach (var item in query)
17             {
18                 System.Console.WriteLine(item.name);
19                 System.Console.WriteLine(item.price);
20             }
21             int[] arrayint = { 1 };
22             int sum = arrayint.Aggregate(0, (x, y) => x + y * 3);//0表明x,意思是0+循環的每一個數組項*3
23             System.Console.WriteLine(sum);
相關文章
相關標籤/搜索