public KeyedQueue(int capacity, Func <T, TKey> keyProvider, bool strictSet) { Ensure.ArgumentInRange(() => capacity >= 0, "capacity", capacity, null); this._hashset = new HashSet <TKey>(); this._queue = new SimpleQueue <T>(capacity); this._keyProvider = keyProvider; this._strictSet = strictSet; }
IEnumerator System.Collections.IEnumerable.GetEnumerator() { SimpleQueue<T> ts = null; for (int i = 0; i < ts._used; i++) { int length = (ts._head + i) % (int)ts._array.Length; yield return ts._array[length]; } }