public static class EnumerableEx { public static IEnumerable<TSource> Where2<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { foreach (var item in source) { if (predicate(item)) yield return item; } } }
확장 메서드로 만들어서 IEnumerable.Where2 로 사용 가능하며
yield return 으로 지연 반환을 한다.
List<int> list = new List<int>(); list.Add(1); list.Add(2); list.Add(3); var result = list.Where2(i => i > 1); foreach (var item in result) { }//result 2, 3 list.Add(4); foreach (var item in result) { }//result 2, 3, 4
댓글 없음:
댓글 쓰기