Добавить элемент N раз в Linq

213
10 апреля 2018, 03:00

На форму заказа (Order) нужно добавить пять позиций (OrderPosition), делаю это в цикле:

var order = new Order();
var orderPositions = new List<OrderPositions>();
for (var i = 0; i < 5; i++)
    orderPositions.Add(new OrderPositions {Discount = 0M, ... });
order.OrderPositions = orderPositions;

А можно ли цикл for заменить linq-выражением, желательно без библиотеки MoreLinq?

Answer 1

Используйте Enumerable.Range():

orderPositions.AddRange(
    Enumerable.Range(0, 5)
              .Select(i => new OrderPositions { Discount = 0M, ... }));

Здесь в Select вы можете использовать i также, как в своем цикле.

Ну и в итоге ваш фрагмент можно переписать так:

var order = new Order();
order.OrderPositions =
    Enumerable.Range(0, 5)
              .Select(i => new OrderPositions { Discount = 0M, ... })
              .ToList();
READ ALSO
Перестает работать Button в DataTemplate

Перестает работать Button в DataTemplate

Дано DataTemplate, в котором определена кнопка:

214
Ограничить ввод текста в ячейку DataGridView определённым набором символов

Ограничить ввод текста в ячейку DataGridView определённым набором символов

Подскажите, пожалуйста, возможно ли ограничить ввод текста в ячейку (либо во все ячейки) DataGridView определённым набором символов?

159
Вывод данных авторизированного пользователя

Вывод данных авторизированного пользователя

Здравствуйте сделал авторизацию пользователя в программе через бд по логину и паролюХотелось чтобы после входа

178
Какие хитрости и просто сложные вещи нужно знать в css [требует правки]

Какие хитрости и просто сложные вещи нужно знать в css [требует правки]

Какие хитрости и просто сложные вещи нужно знать в css ?

214