Duplicate possible:
Remplir une liste d'entiers dans .NET
Existe-t-il un moyen plus simple ou plus élégant d’initialiser une liste d’entiers en C # autre que celui-ci?
List<int> numberList = new List<int>() { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
ou
for(int i = 1; i <= 10; i++)
{
numberList.Add(i);
}
Cela ne semble tout simplement pas très pratique - surtout si la liste devait contenir un grand nombre de valeurs. Une boucle serait-elle une solution plus pratique?
Merci,
CC
Vous pouvez tirer parti de la méthode Enumerable.Range()
:
var numberList = Enumerable.Range(1, 10).ToList();
Le premier paramètre est le nombre entier à partir duquel commencer et le deuxième paramètre est le nombre d'entiers séquentiels à inclure.
Si votre liste d'initialisation est aussi simple qu'une séquence consécutive de valeurs de from
à end
, vous pouvez simplement dire
var numbers = Enumerable.Range(from, end - from + 1)
.ToList();
Si votre liste d'initialisation est quelque chose d'un peu plus complexe qui peut être définie par un mappage f
de int
à int
, vous pouvez dire
var numbers = Enumerable.Range(from, end - from + 1)
.Select(n => f(n))
.ToList();
Par exemple:
var primes = Enumerable.Range(1, 10)
.Select(n => Prime(n))
.ToList();
générerait les dix premiers nombres premiers en supposant que Prime
est un Func<int, int>
qui prend un int n
et retourne le n
th prime.