2011-11-15 11 views
6

Si tengo un número y necesito incrementarlo n veces y agregarlo a una lista, ¿hay alguna manera de hacerlo en 1 línea en lambda?Lambda agrega elementos incrementados a la lista

Por ej.

int n = 5; //5 elements. 
int x = 10; // starts at 10 
//do stuff 
List<int> list; 
//list now contains: 10, 11, 12, 13, 14 
+0

Dice 5 elementos, luego liste 6 como la salida esperada ... edite nm entonces. – asawyer

Respuesta

15

Si desea construir una lista con 5 elementos de un determinado punto de partida, incrementando por uno, puede utilizar Enumerable.Range.

var list = Enumerable.Range(10, 5).ToList(); 

Para añadir aquellos a una lista preexistente, combinarlo con AddRange

list.AddRange(Enumerable.Range(10, 5)); 
4
var list = Enumerable.Range(x,n).ToList(); 
1

Sólo por diversión usando la expresión lambda y el cierre: (me gusta Enumerable.Range() pero también me gusta una diversión al acercarse a soluciones diferentes)

var list = new List<int>();    
Action<int, int> generator = (x, n) => { while (n-- > 0) list.Add(x++); }; 
generator(10, 5); 
Cuestiones relacionadas