如果我有一个数字,我需要增加它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
如果我有一个数字,我需要增加它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
如果你想构建具有从给定起点5个元素的列表,由一个递增,您可以使用Enumerable.Range
。
var list = Enumerable.Range(10, 5).ToList();
要添加这些到预先存在的名单,只是为了好玩利用lambda表达式和关闭与AddRange
list.AddRange(Enumerable.Range(10, 5));
var list = Enumerable.Range(x,n).ToList();
结合起来: (我喜欢Enumerable.Range()
也是我喜欢同时接近不同的解决方案)
var list = new List<int>();
Action<int, int> generator = (x, n) => { while (n-- > 0) list.Add(x++); };
generator(10, 5);
你说5个元素,然后列出6作为预期输出.......编辑nm然后。 – asawyer