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