2011-11-15 13 views
6

Se ho un numero e ho bisogno di incrementarlo n volte e aggiungerli a una lista, c'è un modo per farlo in 1 riga in lambda?Lambda aggiunge elementi incrementati all'elenco

Ad es.

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

Dici 5 elementi, quindi elenca 6 come l'uscita prevista ....... modifica nm allora. – asawyer

risposta

15

Se si vuole costruire una lista con i 5 elementi da un determinato punto di partenza, con incrementi di uno, è possibile utilizzare Enumerable.Range.

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

Per aggiungere quelli a un elenco preesistente, combinarlo con AddRange

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

Solo per divertimento utilizzando un'espressione lambda e la chiusura: (mi piace Enumerable.Range() ma anche mi piace divertente mentre ci si avvicina a diverse soluzioni)

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