通过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倍&希望将查询变量获取为增加值的整数。
您可以使用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);