<PackageReference Include="System.Reactive" Version="4.0.0" />

Plan<T1, TResult>

class Plan<T1, TResult> : Plan<TResult>
using System.Collections.Generic; namespace System.Reactive.Joins { internal class Plan<T1, TResult> : Plan<TResult> { internal Pattern<T1> Expression { get; set; } internal Func<T1, TResult> Selector { get; set; } internal Plan(Pattern<T1> expression, Func<T1, TResult> selector) { Expression = expression; Selector = selector; } internal override ActivePlan Activate(Dictionary<object, IJoinObserver> externalSubscriptions, IObserver<TResult> observer, Action<ActivePlan> deactivate) { IObserver<TResult> observer2 = observer; Action<Exception> onError = observer2.OnError; JoinObserver<T1> firstJoinObserver = Plan<TResult>.CreateObserver(externalSubscriptions, Expression.First, onError); ActivePlan<T1> activePlan = null; activePlan = new ActivePlan<T1>(firstJoinObserver, delegate(T1 first) { TResult val = default(TResult); try { val = Selector(first); } catch (Exception error) { observer.OnError(error); return; } observer.OnNext(val); }, delegate { firstJoinObserver.RemoveActivePlan(activePlan); deactivate(activePlan); }); firstJoinObserver.AddActivePlan(activePlan); return activePlan; } } }