我正在寻找一种在c#中生成1到100整数数组的简洁方法,即
int[] values = {1,2,3 ..., 100};
这样我就可以在foreach循环中使用该数组:
foreach (var i in values)
{
// do whatever
}
有什么想法吗?
答案 0 :(得分:21)
Enumerable.Range(1, 100).ToArray();
答案 1 :(得分:3)
我可能没有太多意义 - Oded的18票(包括我自己的+1票)几乎都说了,但只是要指出如果你打算使用数组中的整数,产生一些东西 - 让我们说一个对象 - 然后你可以把整个事情搞定。
所以,假设你想要一些字符串:
var strings = Enumerable.Range(1,100)
.Select(i => i.ToString()).ToArray();
为您提供一系列字符串。
或许是从方法调用生成的MyWidget
,它使用索引:
var myWidgets = Enumerable.Range(1,100)
.Select(i => ProduceMyWidget(i)).ToArray();
如果原始foreach
代码块不止一行代码 - 那么您只需使用{}
块
var myWidgets = Enumerable.Range(1,100)
.Select(i => {
if(i == 57)
return ProduceSpecial57Widget(i);
else
ProduceByWidget(i);
}).ToArray();
显然,最后一个示例有点愚蠢 - 但它经常说明传统的foreach
如何被Select
加ToArray()
调用取代。