Лямбда добавить увеличенные элементы в список - PullRequest
6 голосов
/ 16 ноября 2011

Если у меня есть число, и мне нужно увеличить его n раз и добавить их в список, есть ли способ сделать это в 1 строке в лямбде?

Например,

int n = 5; //5 elements.
int x = 10; // starts at 10
//do stuff
List<int> list;
//list now contains: 10, 11, 12, 13, 14

Ответы [ 3 ]

15 голосов
/ 16 ноября 2011

Если вы хотите построить список из 5 элементов с заданной начальной точки, увеличивая на единицу, вы можете использовать Enumerable.Range.

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

Чтобы добавить их в существующий список, объедините его с AddRange

list.AddRange(Enumerable.Range(10, 5));
4 голосов
/ 16 ноября 2011
var list = Enumerable.Range(x,n).ToList();
1 голос
/ 16 ноября 2011

Просто для удовольствия, используя лямбда-выражения и замыкания: (Мне нравится Enumerable.Range(), но мне также нравится веселье, когда я подхожу к различным решениям)

var list = new List<int>();            
Action<int, int> generator = (x, n) => { while ( n-- > 0) list.Add(x++); };
generator(10, 5);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...