diff options
author | Atsushi Eno <atsushieno@gmail.com> | 2013-12-16 17:30:03 +0400 |
---|---|---|
committer | Atsushi Eno <atsushieno@gmail.com> | 2013-12-16 17:30:03 +0400 |
commit | 74a538f6725ebc83efda4bb07d5747e8a6359e19 (patch) | |
tree | 7c98de97c88c78b4aca4b25b36db310f82c26865 /Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs | |
parent | 50e7bdb4507f7e4c2aefb7772d57d9a80f4d42b0 (diff) |
I made changes from the original source tree to match the older tree
so that we don't have to make several changes to project tree generator.
(There is actually no new sources in Rx so hopefully we can just reuse
existing modifications in the tree).
Diffstat (limited to 'Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs')
-rw-r--r-- | Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs b/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs index 1e64100..4f91030 100644 --- a/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs +++ b/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) |