public static List <TResult> Select <T, TResult>(this IEnumerable <T> collection, JudgeDelegate <T> judger, SelectorDelegate <T, TResult> selector) { List <TResult> ret = new List <TResult> (); var iter = collection.GetEnumerator(); while (iter.MoveNext()) { if (judger == null || judger(iter.Current)) { ret.Add(selector(iter.Current)); } } return(ret); }
public static List <T> Select <T>(this IEnumerable <T> collection, JudgeDelegate <T> judger) { return(collection.Select(judger, e => e)); }