2011-11-15 17 views
6

Jeśli mam numer i muszę go inkrementować n razy i dodawać do listy, czy istnieje sposób, aby to zrobić w 1 linii w lambda?Lambda dodać kolejne elementy do listy

Na przykład.

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

Mówisz 5 elementów, a następnie jako 6 oczekiwany wynik ....... edytuj nm następnie. – asawyer

Odpowiedz

15

Jeśli chcesz zbudować listę z 5 elementów z danego punktu startowego, zwiększając o jeden, można użyć Enumerable.Range.

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

Aby dodać te do wcześniej istniejącej listy, połączyć go z AddRange

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

Tak dla zabawy za pomocą wyrażenia lambda i zamknięcie: (lubię Enumerable.Range() ale również lubię zabawy przy zbliżaniu się do różnych rozwiązań)

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