Exemple #1
0
 /// <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());
                }
            }