通过linq增加一个整数

本文关键字:一个 整数 linq 增加 通过 | 更新日期: 2023-09-27 18:27:38

我想通过linq增加一个int值。假设int值是4354764&我想再增加500个值。我知道我可以通过for循环来完成,但通过LINQ有可能吗?

示例:

int counter = 4354764;
var query = from a in stuff
            select new { count = counter++ };

在上面的例子中,我想把计数器增加500倍&希望将查询变量获取为增加值的整数。

通过linq增加一个整数

您可以使用Enumberable.Range并依靠副作用来增加counter。请注意,LINQ使用延迟求值,因此您需要强制增加对counter查询的求值。我使用了ToList(),但是,您也可以按照FredrikRedin的建议使用Count()

 int counter = 4354764;
 var query = (from a in Enumerable.Range(1, 500)
                select new { count = counter++ }).ToList();

或者:-)

counter += 500

或者,如果你真的需要一个范围:

var query = Enumerable.Range(counter, counter + 500);

我已经调整了您的示例,并添加了500次迭代的

int counter = 4354764;
int result  = Enumerable.Range(1, 500)
                        .Select(x => ++counter)
                        .Last();
Console.WriteLine("{0} {1}", counter, result);

由于.Last()强制总枚举,因此输出

4355264 4355264
from a in Enumerable.Range(1, 500) select new { count = counter + a };

Count()足以强制求值,无需创建列表。

 int counter = 10;
 Enumerable.Range(1, 500).Select(x => ++counter).Count();
 Console.WriteLine("{0}", counter);