web-dev-qa-db-fra.com

Remplissez une liste avec une plage spécifique de nombres à l'aide de LINQ

Afin de remplir un List<int> Avec une plage de nombres de 1 à n je peux utiliser:

for (i=1; i<=n; i++)
{
   myList.Add(i);
}

Existe-t-il un moyen d'obtenir le même résultat en utilisant des expressions en ligne LINQ?

MISE À JOUR

Supposons que j'ai une méthode getMonthName(i) qui, étant donné l'entier, renvoie le nom du mois. Puis-je remplir la liste directement avec les noms de mois en utilisant Enumerable

30
CiccioMiami
Enumerable.Range(1,12).Select(getMonthName);
46
rasmusvhansen

Vous souhaitez utiliser Enumerable.Range .

myList.AddRange(Enumerable.Range(1, n));

Ou

myList = Enumerable.Range(1, n).ToList();

Si vous posez ce genre de question, vous voudrez peut-être examiner les méthodes de System.Linq.Enumerable . C'est là que tout cela est conservé. Ne manquez pas ToLookup, Concat (vs Union) et Repeat.

30
Amy B

Pour les noms de mois, vous pouvez utiliser Select():

var months = Enumerable.Range(1,n).Select(getMonthName);
3
AlanT