2011-11-15 128 views
6

如果我有一個數字,我需要增加它n次並將它們添加到列表中,是否有一種方法可以在lambda中的1行中執行此操作?Lambda將增加的元素添加到列表中

例如,

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

你說5個元素,然後列出6作爲預期輸出.......編輯nm然後。 – asawyer

回答

15

如果你想構建具有從給定起點5個元素的列表,由一個遞增,您可以使用Enumerable.Range

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

要添加這些到預先存在的名單,只是爲了好玩利用lambda表達式和關閉與AddRange

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

結合起來: (我喜歡Enumerable.Range()也是我喜歡同時接近不同的解決方案)

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