summaryrefslogtreecommitdiff
path: root/external/rx/Rx/NET/Source/System.Reactive.Linq/Reactive/Linq/Observable/GroupBy.cs
diff options
context:
space:
mode:
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.cs16
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)