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
Enumerable.Range(1,12).Select(getMonthName);
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
.
Pour les noms de mois, vous pouvez utiliser Select()
:
var months = Enumerable.Range(1,n).Select(getMonthName);