在C#中是否有相当于Pythons范围(12)?

Dar*_*mas 45 c# python range xrange

这对我来说不时出现:我有一些C#代码非常想要range()Python中可用的功能.

我知道使用

for (int i = 0; i < 12; i++)
{
   // add code here
}
Run Code Online (Sandbox Code Playgroud)

但是这会在功能用法中降低,就像我想要做一个Linq Sum()而不是写上面的循环一样.

有没有内置?我想我可以永远只是推出自己用yield还是这样,但是这将是如此得心应手,只是.

Luk*_*keH 81

你正在寻找Enumerable.Range方法:

var mySequence = Enumerable.Range(0, 12);
Run Code Online (Sandbox Code Playgroud)

  • 这很令人困惑,因为我认为Python的版本是`(开始,结束)`.NET的版本是`(开始,计数)` - 不要混淆它们的错误! (10认同)
  • 注意:这需要 System.Linq 和 C# 3.0。 (2认同)

Tim*_*imY 15

只是为了补充每个人的答案,我认为我应该补充说它Enumerable.Range(0, 12);更接近Python 2.x,xrange(12)因为它是一个可枚举的.

如果有人需要专门的列表或数组:

Enumerable.Range(0, 12).ToList();
Run Code Online (Sandbox Code Playgroud)

要么

Enumerable.Range(0, 12).ToArray();
Run Code Online (Sandbox Code Playgroud)

更接近Python的range(12).


Mar*_*off 7

Enumerable.Range(start, numElements);
Run Code Online (Sandbox Code Playgroud)


Mel*_*ats 5

Enumerable.Range(0,12);