52 votes

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

123voto

Jon Skeet Points 692016

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 comme 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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X