Здравствуйте, Serginio1, Вы писали:
I>>Ты пишешь "Xml там IQueryable на самом то деле. ". Смотри сам http://rsdn.org/forum/flame.comp/7994997.1Автор: Serginio1
Дата: 21.04.21
I>>Я не ходил по ссылке, поверил тебе на слово.
I>>Похоже, судя по твоим воплям, ты снова написал не то, что думал?
S> Я тебе исходники давал https://github.com/Microsoft/referencesource/blob/master/System.Xml.Linq/System/Xml/Linq/XLinq.cs#L1457
S>Но ты не читатель!!!!!
Ты хочешь что бы я каждый раз сверял одни твои слова с другим твоими словами?
I>>Вместо yield a пишем observer.next(a)
S> Приведи реальный код. Заметь я тебе даю кучу ссылок но ты их и не читаешь и дальше плетешь всякую хрень.
Привожу в который раз
https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/filter.ts
Здесь прямо указывается
subscriber.next(value)
Тебе понятно, как это выглядит без yield?
S>https://docs.microsoft.com/en-us/archive/msdn-magazine/2017/june/essential-net-custom-iterators-with-yield
S> То есть такой код.
Почему тебе недостаточно вот этого примера
https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/filter.ts
Я не хочу тратить время непойми на что. Объясни, что непонятно с filter. здесь ровно то, о чем я говорю — как yield Заменяется на next.
Болек того, там же целая куча операторов
https://github.com/ReactiveX/rxjs/tree/master/src/internal/operators
Почему ты спрашиваешь у меня, когда можно сходить по ссылке? Можно ведь хоть во все операторы заглянуть, но тебе нужен особенный вариант
I>>На сколько я понимаю, C# эквивалент это что то навроде AsyncObservableBase
I>>https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/AsyncRx.NET/System.Reactive.Async.Core/System/Reactive/AsyncObservableBase.cs
S> RX это обработка асинхронных очередей достаточно просто решается через IAsyncEnumerable
Ты путаешь AsyncEnumerable и обычный RX Observable.
AsyncEnumerable это pull-модель. RX — push, и это Observable. AsyncEnumerable это недавнее расширение, я про него ничего не говорю.
То есть, у нас задача — сконвертить IEnumerable в Observable.
Для этого надо вызвать оператор ToObservable.
Смотрим вместе "2 строчки":
https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/Rx.NET/Source/src/System.Reactive/Linq/Observable/ToObservable.cs
Где ты здесь видишь yield ?
Где подтверждение твоих слов?
Гы-гы. Деятель, взял другую либу и ищет там непойми что.
S>https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/Ix.NET/Source/System.Linq.Async/System/Linq/Operators/TakeWhile.cs
S> Заметь как элеганто решается с помощью yield
Алё! Ты показываешь другую либу!!!!!!!!!!!!!!!!!!!!
Смотри на урл свой — у тебя Ix.NET — Ix.NET/Source/System.Linq.Async
Ты чё, реально недогоняешь, что это совсем другой механизм?
Вот RX TakeWhile — конский класс
https://github.com/dotnet/reactive/blob/9f2a8090cea4bf931d4ac3ad071f4df147f4df50/Rx.NET/Source/src/System.Reactive/Linq/Observable/TakeWhile.cs
Смотрим как это в жээсе:
https://github.com/ReactiveX/rxjs/blob/master/src/internal/operators/takeWhile.ts
Итого — с учето вызываемых функций — ровно то же.
I>>Это не важно, что от чего наследуется. При помощи IQueryable можно сделать всё, добавляя провайдер.
I>>С IEnumerable так не получится.
S> То есть минус ты мне поставил за то, что IEnumerable так не может при работе с БД, поэтому yield отстой и он не нужен и без него Linq и без него линк прекрасно обходится!
S>За что минус!!!!
За то, что ты приписываешь мне слова "yield — отстой" и никак не можешь этого заметить.
yield как и любой инструмент имеет границы применения. Внутри границ — идеален, вне границ — не годится.
Вот и всё.
А для тебя, похоже, сам факт существования границ применимости лично тебя оскорбляет