C# 通过linq递增整数
我想通过linq增加一个int值。假设int值是C# 通过linq递增整数,c#,linq,C#,Linq,我想通过linq增加一个int值。假设int值是4354764&我想再增加500个值。我知道我可以通过for-loop来实现,但是可以通过LINQ实现吗 例如: int counter = 4354764; var query = from a in stuff select new { count = counter++ }; 在上面的示例中,我希望将计数器增加500倍,并希望将查询变量作为具有增加值的整数。您可以使用Enumberable.Range并依靠副作用来增
4354764
&我想再增加500个值。我知道我可以通过for-loop来实现,但是可以通过LINQ实现吗
例如:
int counter = 4354764;
var query = from a in stuff
select new { count = counter++ };
在上面的示例中,我希望将计数器增加500倍,并希望将查询变量作为具有增加值的整数。您可以使用
Enumberable.Range
并依靠副作用来增加计数器。请注意,LINQ使用延迟求值,因此您需要强制增加对计数器
的查询求值。我已经使用了ToList()
,但是,您也可以按照FredrikRedin的建议使用Count()
int counter = 4354764;
var query = (from a in Enumerable.Range(1, 500)
select new { count = counter++ }).ToList();
或者,或者:-)
或者,如果您确实需要一个范围:
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
Count()足以强制求值,无需创建列表
int counter = 10;
Enumerable.Range(1, 500).Select(x => ++counter).Count();
Console.WriteLine("{0}", counter);
为什么?这样做的目的是什么?什么是东西
?为什么是500次?资料中有500项吗?
?1个问题,为什么?没什么,这只是一个例子。没有什么比这更好的了。我只是有一个需要增加500倍的计数器变量。如果你想增加500倍,你可以为(inti=0;I<500;++I){++counter;}
写,但是通常的写方法是计数器+=500代码>。如果您坚持使用LINQ,请在文件顶部添加using System.LINQ
:P您确定这不是XY问题()并且您真的想问其他问题吗?但是为什么?这听起来像是“我知道如何使用锤子,但我想用我的瑞士军刀修复这个钉子。”如何获得整数值?然后是新的count
value!!有500个匿名对象,对吗?您可以访问它们。int newCounter=4354764+500代码>
4355264 4355264
int counter = 10;
Enumerable.Range(1, 500).Select(x => ++counter).Count();
Console.WriteLine("{0}", counter);