public IEnumerator <(T, TView)> GetEnumerator() { lock (SyncRoot) { if (!reverse) { foreach (var item in ringBuffer) { if (filter.IsMatch(item.Item1, item.Item2)) { yield return(item); } } } else { foreach (var item in ringBuffer.AsEnumerable().Reverse()) { if (filter.IsMatch(item.Item1, item.Item2)) { yield return(item); } } } } }
public IEnumerator <(T, TView)> GetEnumerator() { lock (SyncRoot) { foreach (var item in dict) { if (filter.IsMatch(item.Value.Item1, item.Value.Item2)) { yield return(item.Value); } } } }