На форму заказа (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?
Используйте 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();
Сборка персонального компьютера от Artline: умный выбор для современных пользователей