34

I want to initialize an array of int and populate it with a range of numbers:

return new int[].Populate(30,50);

So then I would have an array with 30, 31, 32, 33... - 50

Sam
  • 14,821
  • 23
  • 82
  • 144

3 Answers3

78

You can use Enumerable.Range() to e.g. return an array of 21 integers starting at 30:

return Enumerable.Range(30, 21).ToArray();
BrokenGlass
  • 153,880
  • 28
  • 280
  • 327
25

Use Enumerable.Range

var array = Enumerable.Range(30, 21).ToArray();

This will result in a sequence of 21 values starting at 30. Simply put, you get your { 30 ... 50 } array.

Anthony Pegram
  • 119,149
  • 26
  • 217
  • 245
11

Using a for loop is actually faster than using Enumerable.Range().ToArray()

I measured it for creating an array of 1 000 000 elements.

int[] array = Enumerable.Range(0, 1000000).ToArray(); takes 9ms, while creating an array int[] array2 = new int[1000000]; and filling it in a for loop took only 3ms.

adam
  • 111
  • 1
  • 3