要素の削除
http://blogs.wankuma.com/episteme/archive/2007/11/12/107752.aspx
επιστημηさんとこから。
yield好きな私だと、
using System; using System.Collections.Generic; class Program { static IEnumerable<T> Remove<T>(IEnumerable<T> objs, Predicate<T> pred) { foreach (T obj in objs) if (!pred (obj)) yield return obj; } static void Main (string args) { int numbers = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; foreach (int n in Remove (numbers,delegate (int x) { return x % 2 == 0; })) Console.WriteLine (n); } }
とかかな。これならIEnumerable全般で使えるし。