C#中有没有类似于Python的range(12)的函数?

55 投票
5 回答
24349 浏览
提问于 2025-04-15 13:34

这事儿我时不时就遇到:我在写C#代码的时候,特别想用Python里的range()函数。

我知道可以用

for (int i = 0; i < 12; i++)
{
   // add code here
}

但是这样在一些功能上就不太好用了,比如我想用Linq的Sum(),而不是写上面的循环。

有没有什么内置的解决办法?我想我可以自己写一个,用yield之类的,但这样的话就太麻烦了,能直接用就好了。

5 个回答

8
Enumerable.Range(start, numElements);

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

17

为了补充大家的回答,我想说一下,Enumerable.Range(0, 12); 更像是 Python 2.x 中的 xrange(12),因为它是一个可枚举的对象。

如果有人特别需要一个列表或数组:

Enumerable.Range(0, 12).ToList();

或者

Enumerable.Range(0, 12).ToArray();

这些更接近于 Python 的 range(12)

101

你在找的是Enumerable.Range这个方法:

var mySequence = Enumerable.Range(0, 12);

撰写回答