【发布时间】:2011-03-17 22:01:38
【问题描述】:
如果我向某人解释以下 ForEach 功能,是否准确地说 #2 是“LINQ foreach 方法”还是只是“List<T> 扩展方法”与 LINQ 没有正式关联?
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()));
【问题讨论】:
-
查看 Eric Lippert blogs.msdn.com/b/ericlippert/archive/2009/05/18/…的这篇文章
-
值得注意的是,您的 #2 将遍历项目两次 - 一次用于创建列表,一次用于 ForEach 方法。如果你想使用这种完全合法的代码风格,你最好在 IEnumerable 上编写自己的 ForEach 扩展方法。
标签: c# linq nomenclature