在c#中生成1到100整数数组的简明方法

Lil*_*sey 3 c#

我正在寻找一种简洁的方法来生成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)

有任何想法吗?

Ode*_*ded 21

使用Enumerable.Range:

Enumerable.Range(1, 100).ToArray();
Run Code Online (Sandbox Code Playgroud)


And*_*tan 5

我提出这个可能没有多大意义 - 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)

显然,最后一个例子有点傻——但它通常说明了如何foreachSelect加号ToArray()调用替换传统。