2012-02-20 16 views
22

Para poblar una List<int> con un rango de números de 1 a n puedo usar:rellenar una lista con una serie específica de números mediante el uso de LINQ

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

¿Hay alguna manera de lograr el mismo resultado mediante el uso de expresiones en línea LINQ?

ACTUALIZACIÓN

Supongamos que tengo un método getMonthName(i) que dado el número entero devuelve el nombre del mes. ¿Puedo llenar la lista directamente con los nombres de mes de alguna manera mediante Enumerable

Respuesta

24

Quiere usar Enumerable.Range.

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

O

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

Si usted está pidiendo este tipo de pregunta, es posible que desee mirar por encima de los métodos de System.Linq.Enumerable. Ahí es donde se guardan todas estas cosas. No se pierda ToLookup, Concat (frente a Union) y Repeat.

+0

gracias! Supongamos que tengo un método getMonthName (i) que dado el número entero da el nombre del mes. ¿Puedo llenar la lista directamente con los nombres de mes de alguna manera usando 'Enumerable'? – CiccioMiami

+0

@CiccioMiami en general, cuando tiene una segunda pregunta, lo mejor es formularla como una segunda pregunta. –

+0

tienes razón, me disculpo – CiccioMiami

2

Para los nombres de los meses se pueden utilizar Select():

var months = Enumerable.Range(1,n).Select(getMonthName); 
Cuestiones relacionadas