Есть ли способ накопить что-то с помощью linq.While loop to linq
Начальный код:
Something oneItem;
List<Something> allItems;
while ((oneLine = _generator.GenerateSomething()) != null)
allItems.Add(_generator.CurrentItem);
Я хотел бы что-то вроде:
var allItems = Enumerable.Take(()=>_generator.GenerateSomething()).While(item=>item !=null).ToList();
На самом деле, это было бы очень хорошо, если генератор impleted IEnumerable, я бы использовать его таким образом:
var allItems = _generator.TakeWhile(item !=null);
Этот последний очень легко понять, я хотел бы его одобрить (я могу e - своего рода оболочка, которая генерирует состояние машины с учетом производственного метода (_generator.GenerateSomething()) и условие остановки (item == null). Но я не могу написать этот дополнительный класс или по какой-то причине).
почему вы хотите этого? –
Я нашел исходный код довольно грязным, мне хотелось бы что-то лучше написано – Toto
Исходный код изящно выражает происходящее. В то время как Linq является новым Black, не всегда удобно носить черный цвет. –