猿教程 Logo

Linq生成运算符:Empty, Range, Repeat

LINQ包括生成运算符DefaultIfEmpty,Empty,Range&Repeat。 Empty,Range&Repeat方法不是IEnumerable或IQueryable的扩展方法,但它们只是静态类Enumerable中定义的静态方法。

方法描述
Empty返回空集合
Range从第一个元素开始,生成具有指定数量的具有顺序值的元素的IEnumerable <T>类型的集合。
Repeat生成具有指定数量的元素的IEnumerable <T>类型的集合,每个元素包含相同的指定值。

Empty:

Empty()方法不像其他LINQ方法一样是IEnumerable或IQueryable的扩展方法。 它是一个包含在Enumerable静态类中的静态方法。 所以,你可以调用它像其他静态方法相同的方式像Enumerable.Empty <TResult>()。 Empty()方法返回指定类型的空集合,如下所示。

相关实例:

var emptyCollection1 = Enumerable.Empty<string>();
var emptyCollection2 = Enumerable.Empty<Student>();

Console.WriteLine("Count: {0} ", emptyCollection1.Count());
Console.WriteLine("Type: {0} ", emptyCollection1.GetType().Name );

Console.WriteLine("Count: {0} ",emptyCollection2.Count());
Console.WriteLine("Type: {0} ", emptyCollection2.GetType().Name );

运行结果:

Type: String[] 
Count: 0 
Type: Student[] 
Count: 0

Range:

Range()方法返回从第一个元素开始的指定数量的元素和顺序值的IEnumerable <T>类型的集合。

相关实例:

var intCollection = Enumerable.Range(10, 10);
Console.WriteLine("Total Count: {0} ", intCollection.Count());

for(int i = 0; i < intCollection.Count(); i++)
    Console.WriteLine("Value at index {0} : {1}", i, intCollection.ElementAt(i));

运行结果:

Total Count: 10 
Value at index 0 : 10
Value at index 1 : 11
Value at index 2 : 12
Value at index 3 : 13
Value at index 4 : 14
Value at index 5 : 15
Value at index 6 : 16
Value at index 7 : 17
Value at index 8 : 18
Value at index 9 : 19

在上面的示例中,Enumerable.Range(10,10)创建具有10个整数元素的集合,顺序值从10开始。第一个参数指定元素的起始值,第二个参数指定要创建的元素数。


Repeat:

Repeat()方法生成具有指定数量的元素的IEnumerable <T>类型的集合,每个元素包含相同的指定值。

相关实例:

var intCollection = Enumerable.Repeat<int>(10, 10);
Console.WriteLine("Total Count: {0} ", intCollection.Count());

for(int i = 0; i < intCollection.Count(); i++)
    Console.WriteLine("Value at index {0} : {1}", i, intCollection.ElementAt(i));

运行结果:

Total Count: 10 
Value at index 0: 10
Value at index 1: 10
Value at index 2: 10
Value at index 3: 10
Value at index 4: 10
Value at index 5: 10
Value at index 6: 10
Value at index 7: 10
Value at index 8: 10
Value at index 9: 10

在上面的例子中,Enumerable.Repeat <int>(10,10)创建具有100个整数类型元素的集合,重复值为10.第一个参数指定所有元素的值,第二个参数指定要创建的元素的数量。


版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Linq/linq-generation-operators.html