Есть ли какой-нибудь метод расширения в Rx, чтобы сделать сценарий ниже?Между значениями с Rx
У меня есть значение, чтобы начать накачка (зеленые кружки) и другое значение, чтобы остановить накачки (тростниковые круги), синие круги должны быть ожидаемые значения, я не хотел бы эту команду, чтобы быть отменены и воссозданы (т.е. «TakeUntil» и «SkipUntil» не будут работать).
Реализация с помощью LINQ будет что-то вроде этого:
public static IEnumerable<T> TakeBetween<T>(this IEnumerable<T> source, Func<T, bool> entry, Func<T, bool> exit)
{
bool yield = false;
foreach (var item in source)
{
if (!yield)
{
if (!entry(item))
continue;
yield = true;
continue;
}
if (exit(item))
{
yield = false;
continue;
}
yield return item;
}
}
Как это та же логика для IObservable<T>
?
Спасибо за ответ, но мне нравится чистая реализация (возможно, в классе) без создания нескольких наблюдаемых. (Я считаю, что некоторая производительность потеряна), я видел, что вы отредактировали, теперь отлично работает. –
@ J.Lennon - Что вы подразумеваете под «чистой реализацией» и «возможно, в классе»? А где же множественные наблюдаемые? – Enigmativity