C# 通过linq递增整数

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并依靠副作用来增

我想通过linq增加一个int值。假设int值是
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);