.NET2.0 からジェネリックが使えるようになり、C#2.0 では匿名メソッドが使えるようになったので、以下のようなコードが書ける。
List<string> list = new List<string>();
list.Add("aiueo");
list.Add("abcde");
list.ForEach(delegate(string text)
{
Console.WriteLine(text);
});
こんなコードを見て、「意味ねぇぇ」と思うのは私だけだろうか。
List<T>.FindAll() 等だったら納得できる。でも、ForEach() は普通に foreach ステートメントで回せば済む事だ。
匿名メソッドを使わないで、普通のデリゲートならまだ納得できる。ループ部分のロジックの共用が出来るからだ。でも、匿名メソッドにはそれがない。
よって、List<T>.ForEach() と匿名メソッドの組み合わせに限っては「意味ねぇぇ」。