如果我向某人解释了以下ForEach功能,是否准确地说#2是“LINQ foreach方法”,或者它只是一个与LINQ没有正式关联的“List< T>扩展方法”?
var youngCustomers = from c in customers where c.Age < 30 select c; //1. traditional foreach approach foreach (var c in youngCustomers) { Console.WriteLine(c.Display()); } //2. LINQ foreach approach? youngCustomers.ToList().ForEach(c => Console.WriteLine(c.Display()));
解决方法
尽管人们经常为其他IEnumerable T提供自己的扩展方法.
LINQ does not provide a ForEach extension由于其功能/不可变类型的设计目标,ForEach是一种固有的副作用/必须的操作.