public static IEnumerable <TResult> Select <TSource, TResult>(IEnumerable <TSource> source, Func <TSource, int, TResult> selector) { if (source == null) { throw ThrowHelper.ArgumentNull("source"); } if (selector == null) { throw ThrowHelper.ArgumentNull("selector"); } return(Enumerable.SelectIterator <TSource, TResult>(source, selector)); }