創建方法
方法 描述 Empty 創建一個空序列 Repeat 創建一個包含重復元素的序列 Range 創建一個包含整數的序列Empty, Repeat和Range都是靜態方法, 用於加工簡單的本地序列
Empty
Empty制造一個空序列並且只需要一個類型參數:
1: foreach (string s in Enumerable.Empty<string>())
2: Console.Write(s); // <nothing>
與??操作符聯合, Empty可以完成和DefaultIfEmpty相反的工作. 例如, 假設我們有一個鋸齒形狀的整型數組, 並且我們希望能夠將所有的整數放入到一個扁平的列表當中. 以下的SelectMany將會失敗因為輸入序列包含了null的內部數組:
1: int[][] numbers =
2: {
3: new int[] { 1, 2, 3 },
4: new int[] { 4, 5, 6 },
5: null // null會導致查詢失敗.
6: };
7:
8: IEnumerable<int> flat =
9: numbers.SelectMany (innerArray =>innerArray);
Empty聯合??操作符可以修正此問題:
1: IEnumerable<int> flat = numbers
2: .SelectMany (innerArray =>
3: innerArray ?? Enumerable.Empty <int>() );
4:
5: foreach (int i in flat)
6: Console.Write (i + " "); // 1 2 3 4 5 6
Range和Repeat
Range和Repeat只能與整數一起工作. Range接受一個起始索引和取值總數:
1: foreach (int i in Enumerable.Range (5,5))
2: Console.Write (i + " "); // 5 6 7 8 9
Repeat接受一個接受重復的數字以及要重復的次數的參數:
1: foreach (int i in Enumerable.Repeat (5,3))
2: Console.Write (i + " "); // 5 5 5
待續!