Re[35]: Есть ли подобие LINQ на других языках/платформах?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 22.04.21 12:29
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Serginio1, Вы писали:


S>>Тоесть итог всей этой болтовни таков. Ты против yield потому, что он с ленивость привносит накладные расходы.


I>Очевидно, это не так. Я спокойно использую yield там, где это не является узким место. И я точно знаю, где начинается это узкое место.


S>>Какие именно? MoveNext и Current я так понимаю. Но на этом Linq то и основан.


I>Linq основан на IQueryable, а IEnumerable нужн рассматривать как оптимизацию частного случая.

И откуда ты ото взял. При этом бОльшая часть линка используется именно для IEnumerable.
Деревья выражений не используются в IEnumerable, но ты не против них!

S>>А List этих расходов не привносит, хотя нужна лишняя память для заполнение Lista даже если эти данные не понадобятся и лишние вызовы лямд если эти данные уже и не нужны


I>В большинстве случаев дополнительная память не нужна. В остальных случаях тоже не все однозначно. Ленивый процессинг можно сорганизовать самыми разными способами с производительностью не хуже IEnumerable.


Еще раз List реализует IEnumerable, но заполнение List ну ни хрена не ленива!!
I>Естественно, я не предлагаю везде заменить IEnumerable массивом. Это стоит делать в числодробилках, когда устраняем узкое место.
I>Чтото мне подсказывает,через три сообщение напишешь "а ты предлагаешь везде отказаться от IEnumerable и перевести всё на массивы"
Так массив и реализует IEnumerable.
В числодробилках можно применять Linq и https://github.com/antiufo/roslyn-linq-rewrite
Или другие способы генерации кода например Source Generator
https://devblogs.microsoft.com/dotnet/introducing-c-source-generators/
и солнце б утром не вставало, когда бы не было меня
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.