Кстати, почему вы объявляете prettyPrint с таким конкретным типом для параметра показателей, а затем используете этот параметр только как IEnumerable (я предполагаю, что именно так вы реализовали метод расширения ForEach)? Так почему бы не поменять подпись prettyPrint и не оставлять это ленивым? =) * * Тысяча одна
Как это:
Action<IEnumerable<int>, string> prettyPrint = (list, title) =>
{
Console.WriteLine("*** {0} ***", title);
list.ForEach(i => Console.WriteLine(i));
};
prettyPrint(scores.Where(i => i % 2 == 0), "Title");
Обновление:
Или вы можете избежать использования List.ForEach следующим образом (не принимать во внимание неэффективность конкатенации строк):
var text = scores.Where(i => i % 2 == 0).Aggregate("Title", (text, score) => text + Environment.NewLine + score);