public static dfList <T> .PooledEnumerator Obtain(dfList <T> list, Func <T, bool> predicate = null) { dfList <T> .PooledEnumerator enumerator = (dfList <T> .PooledEnumerator.pool.Count <= 0) ? new dfList <T> .PooledEnumerator() : dfList <T> .PooledEnumerator.pool.Dequeue(); enumerator.ResetInternal(list, predicate); return(enumerator); }