LINQ(生成操作符)

生成操作符Range()、Empty()和Repeat()不是扩展方法,而是返回序列的正常静态方法。在LINQ to Objects中,这些方法可用于Enumerable类。

有时需要填充一个范围的数字,此时就应该使用Range()方法。这个方法把第一个参数作为起始值,把第二个参数作为要填充的项数:

        static void GenerateRange()
        {
            var values = Enumerable.Range(1,20);
            foreach(var item in values)
            {
                System.Console.Write($"{item} ");
            }
        }

当然,结果如下所示:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 

注:Range()方法不返回填充了所定义值的集合,这个方法与其他方法一样,也推迟执行查询,并返回一个RangeEnumerable,其中只有一条yield return语句,来递增值。

可以把该结果与其他扩展方法合并起来,获得另一个结果,例如,使用Select()扩展方法:

var values = Enumerable.Range(1,20).Select(n=>n*3);

Empty()方法返回一个不返回值的迭代器,它可以用于需要一个集合的参数,其中可以给参数传递空集合。

Repeat()方案返回一个迭代器,该迭代器把同一个值重复特定的次数。

你可能感兴趣的:(LINQ,C#)