// Needed for NET40 #if !NET_4_6 using System; using LinqInternal.Core; namespace LinqInternal.Collections { [Serializable] internal sealed class ConvertedObserver : IObserver { private readonly Func _converter; private readonly IObserver _observer; public ConvertedObserver(IObserver observer, Func converter) { if (observer == null) { throw new ArgumentNullException("observer"); } _observer = observer; if (converter == null) { throw new ArgumentNullException("converter"); } _converter = converter; } public void OnCompleted() { _observer.OnCompleted(); } public void OnError(Exception error) { _observer.OnError(error); } public void OnNext(TInput value) { _observer.OnNext(_converter.Invoke(value)); } } } #endif