diff options
Diffstat (limited to 'external/rx/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs')
-rw-r--r-- | external/rx/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/external/rx/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs b/external/rx/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs index 1e64100331..4f910306d2 100644 --- a/external/rx/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs +++ b/external/rx/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs @@ -7,20 +7,22 @@ using System.Linq; using System.Reactive.Disposables; using System.Reactive.Subjects; -namespace System.Reactive.Linq.ObservĪ±ble +namespace System.Reactive.Linq.ObservableImpl { class GroupBy<TSource, TKey, TElement> : Producer<IGroupedObservable<TKey, TElement>> { private readonly IObservable<TSource> _source; private readonly Func<TSource, TKey> _keySelector; private readonly Func<TSource, TElement> _elementSelector; + private readonly int? _capacity; private readonly IEqualityComparer<TKey> _comparer; - public GroupBy(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, IEqualityComparer<TKey> comparer) + public GroupBy(IObservable<TSource> source, Func<TSource, TKey> keySelector, Func<TSource, TElement> elementSelector, int? capacity, IEqualityComparer<TKey> comparer) { _source = source; _keySelector = keySelector; _elementSelector = elementSelector; + _capacity = capacity; _comparer = comparer; } @@ -49,7 +51,15 @@ namespace System.Reactive.Linq.ObservĪ±ble : base(observer, cancel) { _parent = parent; - _map = new Dictionary<TKey, ISubject<TElement>>(_parent._comparer); + + if (_parent._capacity.HasValue) + { + _map = new Dictionary<TKey, ISubject<TElement>>(_parent._capacity.Value, _parent._comparer); + } + else + { + _map = new Dictionary<TKey, ISubject<TElement>>(_parent._comparer); + } } public void OnNext(TSource value) |