web-dev-qa-db-fra.com

Génération d'une liste de nombres en C #

J'ai souvent besoin de générer des listes de nombres. Les intervalles peuvent avoir beaucoup de nombres. J'ai une méthode comme celle-ci:

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

Existe-t-il un moyen de le rendre plus simple, plus rapide?

J'utilise .NET 3.5

49
Robin Hood

Ce serait probablement un peu plus rapide - et c'est certainement plus simple:

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

En avez-vous vraiment besoin en tant que tableau? Si vous avez seulement besoin d'itérer dessus, vous pouvez simplement utiliser Enumerable.Range directement, pour obtenir un IEnumerable<int> qui n'a jamais besoin de conserver tous les nombres en mémoire en même temps.

118
Jon Skeet