<PackageReference Include="System.Reactive" Version="6.0.0-preview.9" />

GroupedObservable<TKey, TElement>

sealed class GroupedObservable<TKey, TElement> : ObservableBase<TElement>, IGroupedObservable<TKey, TElement>, IObservable<TElement>
using System.Reactive.Disposables; using System.Reactive.Subjects; using System.Runtime.CompilerServices; namespace System.Reactive.Linq { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(new byte[] { 0, 1 })] internal sealed class GroupedObservable<[System.Runtime.CompilerServices.Nullable(2)] TKey, [System.Runtime.CompilerServices.Nullable(2)] TElement> : ObservableBase<TElement>, IGroupedObservable<TKey, TElement>, IObservable<TElement> { private readonly IObservable<TElement> _subject; [System.Runtime.CompilerServices.Nullable(2)] private readonly RefCountDisposable _refCount; public TKey Key { get; } public GroupedObservable(TKey key, ISubject<TElement> subject, RefCountDisposable refCount) { Key = key; _subject = subject; _refCount = refCount; } public GroupedObservable(TKey key, ISubject<TElement> subject) { Key = key; _subject = subject; } protected override IDisposable SubscribeCore(IObserver<TElement> observer) { if (_refCount != null) { IDisposable disposable = _refCount.GetDisposable(); IDisposable disposable2 = _subject.Subscribe(observer); return StableCompositeDisposable.Create(disposable, disposable2); } return _subject.Subscribe(observer); } } }