Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Serginio1, Вы писали:
S>>Это все понятно. Оно будет и с итераторами с вычислением слева на право но с большим количеством итератация.
I>Непонятно, что тебе понятно В одном месте ты пишешь, что потерь производительности нет, а в другом — что они есть.
I>На самом деле пенальти на итерацию есть всегда. Для ленивых вычислений это относительно малое значение. Но, скажем, как только весь сервер целиком начинает обрабатывать коллекции в подобном виде, загрузка процессора увеличивается пропорционально и throughput падает обратно пропорционально, т.е. от 2х и более раз.
Я говорил, про то, что к списку того, что Linq , при кажущейся простоте, потребовал: нужно добавить yield. Ты с этим не согласен?
Что касается оптимизаций, то они есть
roslyn-linq-rewrite
Но часто нужно склеивать запросы передавая их в методы итд. Да жертвуем скоростью на выполнение лямбд, но если лямбда выполняет не действия над int
То потери в производительности значительно меньше 2х
Сначала C# ники встретили Linq настороженно, но потом удобство перевысили потери в производительности