web-dev-qa-db-ja.com

C#での数値リストの生成

多くの場合、数字のリストを生成する必要があります。間隔には非常に多くの数値を設定できます。私はこのような方法があります:

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();
}

より簡単に、より速くする方法はありますか?

.NET 3.5を使用しています

49
Robin Hood

これはおそらく少し速いでしょう-そして確かに簡単です:

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

あなたは間違いなくそれを配列として必要としますか?繰り返し処理するだけなら、 Enumerable.Range 直接、IEnumerable<int>これは、実際にメモリ内のすべての数値を同時に保持する必要はありません。

118
Jon Skeet