2011-11-15 59 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);