public static IIterable <TResult> Select <TSource, TResult>(this IIterable <TSource> source, Func <TSource, TResult> selector) { if (source == null) { throw new ArgumentNullException("source"); } if (selector == null) { throw new ArgumentNullException("selector"); } var linkIterable = source as ILinkIterable <TSource>; if (linkIterable != null) { return(linkIterable.Select(selector)); } return(new LinkIterable <TSource, TResult>(source, Iterator.Select(selector))); }
public ILinkIterable <TNewResult> Select <TNewResult>(Func <TResult, TNewResult> selector) { return(new LinkIterable <TSource, TNewResult>(iterable, Iterator.Select(this.link, selector))); }