public static void AddRange <TK, TV>(this PoolingDictionary <TK, TV> target, IEnumerable <KeyValuePair <TK, TV> > src) { foreach (var item in src) { target.Add(item.Key, item.Value); } }
public static void AddRangeSafe <TK, TV>(this PoolingDictionary <TK, TV> target, IPoolingEnumerable <KeyValuePair <TK, TV> > src) { foreach (var item in src) { target[item.Key] = item.Value; } }
public ExceptExprEnumerable <T> Init(IPoolingEnumerable <T> src, PoolingDictionary <T, int> except, IEqualityComparer <T> comparer = default) { _src = src; _except = except; _comparer = comparer; _count = 0; return(this); }
public IntersectExprEnumerator Init(IntersectExprEnumerable <T> parent, IPoolingEnumerator <T> src, IEqualityComparer <T> comparer) { _src = src; _parent = parent; _alreadyDoneItems = Pool <PoolingDictionary <T, int> > .Get().Init(0, comparer); return(this); }
public GroupedResultEnumerator Init( GroupedResultEnumerable <TSource, TKey, TResult> parent, PoolingDictionary <TKey, PoolingGrouping> src) { _src = src; _parent = parent; _enumerator = _src.GetEnumerator(); return(this); }
public IntersectExprEnumerable <T> Init( IPoolingEnumerable <T> src, PoolingDictionary <T, int> second, IEqualityComparer <T> comparer = default) { _src = src; _count = 0; _second = second; _comparer = comparer ?? EqualityComparer <T> .Default; return(this); }
public void Dispose() { _parent?.Dispose(); _parent = default; _hashset?.Dispose(); _hashset = default; _src = default; _selector = default; Pool <DistinctExprEnumerator> .Return(this); }
public DistinctExprEnumerator Init( DistinctExprEnumerable <T, TItem> parent, IPoolingEnumerator <T> src, Func <T, TItem> selector, IEqualityComparer <TItem> comparer) { _src = src; _parent = parent; _selector = selector; _hashset = Pool <PoolingDictionary <TItem, int> > .Get().Init(0, comparer ?? EqualityComparer <TItem> .Default); return(this); }
public void Dispose() { _src?.Dispose(); _src = null; _alreadyDoneItems?.Dispose(); Pool <PoolingDictionary <T, int> > .Return(_alreadyDoneItems); _alreadyDoneItems = default; _parent?.Dispose(); _parent = default; Pool <IntersectExprEnumerator> .Return(this); }
private void Dispose() { if (_count == 0) { return; } _count--; if (_count == 0) { _src?.Dispose(); Pool <PoolingDictionary <T, int> > .Return(_src); _src = default; Pool <UnionExprEnumerable <T> > .Return(this); } }
private void Dispose() { if (_count == 0) { return; } _count--; if (_count == 0) { _src = default; _second?.Dispose(); Pool <PoolingDictionary <T, int> > .Return(_second); _second = default; Pool <IntersectExprEnumerable <T> > .Return(this); } }
public void Dispose() { // Cleanup contents foreach (var grouping in _src) { grouping.Value.Dispose(); Pool <PoolingGrouping> .Return(grouping.Value); } // cleanup collection _src?.Dispose(); Pool <PoolingDictionary <TKey, PoolingGrouping> > .Return(_src); _src = default; _enumerator?.Dispose(); _enumerator = default; _parent?.Dispose(); _parent = default; Pool <GroupedResultEnumerator> .Return(this); }
public UnionExprEnumerable <T> Init(PoolingDictionary <T, int> src) { _src = src; _count = 0; return(this); }