Linq常用的27個操作符說明

標號 操作符 說明
1 Where 操作符用於限定輸入集合中的元素,將符合條件的元素組織聲稱一個序列結果。
2 Select 操作符用於根據輸入序列中的元素創建相應的輸出序列中的元素,輸出序列中的元素類型可以與輸入序列中的元素類型相同,也可以不同。下面來看看Select方法的原型。
3 SelectMany 操作符用於根據輸入序列中的每一個元素,在輸出序列中創建相應的零個或者多個元素,與Select操作符不同,Select操作符會根據輸入序列中的每一個元素創建一個對應的輸出序列元素,而SelectMany操作符可以創建多個。
4 Take 操作符用於從輸入序列中返回指定數量的元素,常用於分頁。
5 TakeWhile 操作符用於從輸入序列中返回指定數量且滿足一定條件的元素。
6 Skip 操作符用於從輸入序列中跳過指定數量的元素,返回由序列中剩餘的元素所組成的新序列。
7 SkipWhile 操作符用於從輸入序列中跳過滿足一定條件指定數量的元素,與TakeWhile操作符類似。
8 Concat 操作符用於連接兩個序列,生成一個新序列。
9 OrderBy 操作符用於對輸入序列中的元素進行排序,排序基於一個委託方法的返回值順序,排序過程完成後,會返回一個類型爲IOrderEnumerable的集合對象。
10 OrderByDescending 操作符的功能與OrderBy操作符基本相同,二者只是排序的方式不同OrderBy是順序排序,而OrderByDescending則是逆序排序。
11 ThenBy 操作符可以對一個類型爲IOrderedEnumerable,(OrderBy和OrderByDesceding操作符的返回值類型)的序列再次按照特定的條件順序排序。
12 ThenByDescending 操作符與ThenBy操作符非常類似,只是排序順序倒過來而已,不在過多闡述。
13 Reverse 操作符用於生成一個與輸入序列中元素相同,但元素排列順序相反的新序列。
14 Join 操作符類似於SQL語句中的Join語句用於連接多個表,Linq to OBJECT中Join操作符可以用來連接兩個輸入序列。
15 GroupJoin 操作符也用於連接兩個輸入序列,但與Join操作符不同稍有不同,Join操作符在列舉outer序列元素時,會將一個outer序列元素和其對應的inner序列元素作爲一組參數傳遞給委託resultSelector委託,這就意味着如果某一個outer序列元素有多個對應的inner序列元素,Join操作符將會分多次將outer序列元素和每一個對應的inner序列元素傳遞給委託resultSelector。使用GroupJoin操作符時,如果某一個outer序列元素有多個對應的inner序列元素,那麼這多個對應的inner序列元素會作用一個序列一次性傳遞給委託resultSelecotr,可以針對此序列添加一些處理邏輯。
16 GroupBy 操作符類似於SQL語言仲的Gruop By語句,這裏的GroupBy操作符用於將輸入序列中的元素進行分組。
17 Distinct 操作符類似於SQL語句中的Distinct語句,這裏的Distinct操作符也用於去除一個序列中的重複元素。
18 Union 操作符用於將兩個序列中的元素合併成一個新的序列,新序列將自動去除重複的元素。
19 Intersect 操作符會將兩個輸入序列中的重複元素,即同時存在於兩個序列中的元素挑選出來,生成一個新的集合,也就是求交集。
20 Except 操作符可以實現一種集合之間的減法運算,它返回兩個序列中存在於第一個序列但不存在於第二個序列的元素所組成的新序列。
21 Cast 操作符用於將一個類型爲IEnumerable的集合對象轉換爲IEnumerable類型的集合對象。也就是非泛型集合轉成泛型集合,因爲在Linq to OBJECT中,絕大部分操作符都是針對IEnumerable類型進行的擴展方法。因此對非泛型集合並不適用。
22 OfType 操作符與Cast操作符類似,用於將類型爲IEnumerable的集合對象轉換爲IEnumerable類型的集合對象。不同的是,Cast操作符會視圖將輸入序列中的所有元素轉換成類型爲T的對象,,如果有轉換失敗的元素存在Cast操作符將拋出一個異常;而OfType操作符僅會將能夠成功轉換的元素進行轉換,並將這些結果添加到結果序列中去。與Cast操作符相比,OfType操作符更加安全。
23 AsEnumerable 操作符可以將一個類型爲IEnumerable的輸入序列轉換成一個IEnumerable的輸出序列,其主要用於將一個實現了IEnumerable接口的對象轉換成一個標準的IEnumerable接口對象。在Linq中、不同領域的Linq實現都有自己專屬的操作符。
24 DefaultEmpty 操作符可以用來爲一個空的輸入序列生成一個對應的含有默認元素的新序列。引用類型爲null,值類型爲相應的默認值。有些標準操作符在一個空的序列上調用時會拋出一個異常,而DefaultEmpty恰恰可以解決這個問題。
25 Range 操作符用於輔助生成一個整數序列。
26 Repeat 操作符用於生成一個包含指定數量重複元素的序列。
27 Empty 操作符用於生成一個包含指定類型元素的空序列。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章