Generating numbers list in C#

C#.NetVisual Studio.Net 3.5

C# Problem Overview


I often need to generate lists of numbers. The intervals can have quite a lot of numbers. I have a method like this:

public static int[] GetNumbers(int start, int end)
{
    List<int> list = new List<int>();
    for (int i = start; i < end; i++)
        list.Add(i);
    return list.ToArray();
}

Is there a way to make it simpler, faster?

I am using .NET 3.5

C# Solutions


Solution 1 - C#

This would probably be a bit faster - and it's certainly simpler:

int[] values = Enumerable.Range(start, end - start).ToArray();

Do you definitely need it as an array though? If you only need to iterate over it, you could just use Enumerable.Range directly, to get an IEnumerable<int> which never needs to actually hold all the numbers in memory at the same time.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRobin HoodView Question on Stackoverflow
Solution 1 - C#Jon SkeetView Answer on Stackoverflow