<PackageReference Include="System.Reactive" Version="4.2.0-preview.566" />

While<TSource>

sealed class While<TSource> : Producer<TSource, _<TSource>>, IConcatenatable<TSource>
using System.Collections.Generic; namespace System.Reactive.Linq.ObservableImpl { internal sealed class While<TSource> : Producer<TSource, While<TSource>._>, IConcatenatable<TSource> { internal sealed class _ : ConcatSink<TSource> { public _(IObserver<TSource> observer) : base(observer) { } } private readonly Func<bool> _condition; private readonly IObservable<TSource> _source; public While(Func<bool> condition, IObservable<TSource> source) { _condition = condition; _source = source; } protected override _ CreateSink(IObserver<TSource> observer) { return new _(observer); } protected override void Run(_ sink) { sink.Run(GetSources()); } public IEnumerable<IObservable<TSource>> GetSources() { while (this._condition()) { yield return this._source; } } } }