/// <summary> /// Adds the given <paramref name="listener"/> to the internal collection. /// </summary> /// <param name="listener">Listener to add</param> private void AddListenerInstance(object listener) { if (listener == null) { return; } lock (_registeredListener) { _registeredListener.Add(listener); } }
/// <inheritdoc /> public IEnumerator <TElement> GetEnumerator() { lock (_originSet) { if (_elementCache != null) { return(_elementCache.GetEnumerator()); } // Copy all matching items into the cache _elementCache = new LinearList <TElement>(); using (FilterIterator itr = new FilterIterator(_originSet.GetEnumerator(), _wherePredicate)) { while (itr.MoveNext()) { _elementCache.Add(itr.Current); } } return(_elementCache.GetEnumerator()); } }