Re[36]: Есть ли подобие LINQ на других языках/платформах?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 22.04.21 12:53
Оценка:
Здравствуйте, Serginio1, Вы писали:

I>>Ты пока не показал, как xml, db и подобные вещи читать твоим IEnumerable, что бы это было максимально эффективно.

S> Ты чего издеваешься!!! Я тебе ссылку на Linq to XML давал!!!!!

Ты пишешь "Xml там IQueryable на самом то деле. ". Смотри сам http://rsdn.org/forum/flame.comp/7994997.1
Автор: Serginio1
Дата: 21.04.21

Я не ходил по ссылке, поверил тебе на слово.
Похоже, судя по твоим воплям, ты снова написал не то, что думал?

I>>В JS, раз уж ты вспомнил, есть yield. Однако же, в RX процессинг ленивый, а обходятся без yield

I>>https://github.com/ReactiveX/rxjs/search?q=yield
I>>Ажно 11 раз, и те в документации и тестах
I>>Теперь тебе понятно, что yield для RX это вещь сильно опциональная?

S> Еще раз писать ленивые итераторы это ручная работа того, что делает yield.


Очевидно — нет. Ты просто не в курсе, как это делается в RX.
Еще раз:
Вместо yield a пишем observer.next(a)

Возьми паузу и подумай.

S>Что и как генерит yield копируй и вставляй в код. В свое врямя то же самое развертывался async await в JS


Очевидно — не так. Я тебе скажу страшное — пока в жээсе не было ни yield, ни await, я их эмулировал смешным количеством кода.
Не надо позориться, просто скажи, что не в курсе дел.

I>>Покажи, где здесь куча кода:

I>>https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/filter.ts
S> И что там фильтры. Аналог Where. Смотри реальный итератор
S>https://github.com/ReactiveX/rxjs/blob/23bc7fdc16acd76dd71a4faf57b8b949684c3249/src/internal/operators/OperatorSubscriber.ts#L7
S>В C# это 2 строчки

Это враньё. Ты привел не ту ссылку. Твоя ссылка на AsyncIterators. Это другая либа, которая не является эквивалентом RX.js, т.к. это pull-модель, а RX — push.
В C# тебе нужен точно такой же код, только он будет вызываться в другом месте, в конце цепочки.
Он делает
0. читает IEnumerable
1. try-catch
2. кидает эвент
3. unsubscribe
То есть, всё это придется написать руками и в C#.
На сколько я понимаю, C# эквивалент это чтото навроде AsyncObservableBase
https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/AsyncRx.NET/System.Reactive.Async.Core/System/Reactive/AsyncObservableBase.cs

Как видишь — сравнимое количество кода и никакие это не 2 строчки.

I>>Дорого, я в курсе. Иногда это обосновано, если перформанс не актуален, а нужно иметь один и тот же код против разных источников данных.

S>

Что конкретно тебя смущает?

I>>То есть, слив Или ты считаешь свой код примерами работы с mssql ?

S>

Итого — таки слив.

I>> Каким образом по IEnumerable построить SQL ?


Итак — ответа нет.

I>>Используются, просто ты про это ничего не знаешь. Если код написан для BD, нет никакого смысла городить огород, если в некоторых случая нужно таскать данные из коллекций.

I>>Используем один и тот же код против BD и коллекций, всех делов.

S> Я с тебя хренею. Почитай себя. Все твои доводы против yield.


Это не мои доводы, а твоя интерпретация

S>yield это херня так как не используется в IQueryable.


Очевидно, я такого не говорил. Более того — я нигде не называю yield херней. Ты бы прекратил додумывать?

>Но IQueryable хотя и не используется в IEnumerable хотя IQueryable наследуется от IEnumerable


Это не важно, что от чего наследуется. При помощи IQueryable можно сделать всё, добавляя провайдер.
С IEnumerable так не получится.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.