我正在寻找一种简洁的方法来生成c#中的整数1到100的数组,即
int[] values = {1,2,3 ..., 100};
Run Code Online (Sandbox Code Playgroud)
这样我就可以在foreach循环中使用该数组:
foreach (var i in values)
{
// do whatever
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我提出这个可能没有多大意义 - Oded 的 18 票(包括我自己的 +1)几乎说明了一切,但只是要指出,如果你随后要使用数组中的整数,来产生一些东西 -假设一个物体 - 然后你可以把整个东西卷起来。
所以,假设你想要一些字符串:
var strings = Enumerable.Range(1,100)
.Select(i => i.ToString()).ToArray();
Run Code Online (Sandbox Code Playgroud)
给你一个字符串数组。
或者可能是MyWidget从方法调用产生的,它使用索引来表示:
var myWidgets = Enumerable.Range(1,100)
.Select(i => ProduceMyWidget(i)).ToArray();
Run Code Online (Sandbox Code Playgroud)
如果原始foreach代码块不止一行代码 - 那么你只需使用一个{}块
var myWidgets = Enumerable.Range(1,100)
.Select(i => {
if(i == 57)
return ProduceSpecial57Widget(i);
else
ProduceByWidget(i);
}).ToArray();
Run Code Online (Sandbox Code Playgroud)
显然,最后一个例子有点傻——但它通常说明了如何foreach用Select加号ToArray()调用替换传统。