LINQ学习笔记:创建方法
http://www.itjxue.com 2015-07-17 01:59 来源:未知 点击次数:
创建方法
方法 | 描述 |
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
待续!
(责任编辑:IT教学网)
下一篇:LINQ学习笔记:Set操作符