LINQ建议 - 使用ToList()。ForEach而不是'经典'ForEach迭代

时间:2010-08-27 15:34:47

标签: c# linq

我想使用LINQ的ForEach构造,我不知道如何转换以下内容。

我目前的实施:

var employees = (from e in employeeDepartmentList select e.Employee).ToList();
employeeList = new EmployeeList();
foreach (var emp in employees)
{
   employeeList.Add(emp);
}

我在想这样的事情:

employeeList = new EmployeeList();
var employees = (from e in employeeDepartmentList select e.Employee).ToList().ForEach(emp => employeeList.Add(emp));

2 个答案:

答案 0 :(得分:7)

ForEach不是LINQ方法,它是List<>的方法。在这个简单的场景中,为什么要使用它呢? employeeList.AddRange(employees)会更简单。更进一步,如果employees已经是一个列表,您需要employeeList吗?

关于一般使用foreach与ForEach的更多建议,请参阅:http://blogs.msdn.com/b/ericlippert/archive/2009/05/18/foreach-vs-foreach.aspx

答案 1 :(得分:1)

这是我们决定选择的选项。我们添加了一个类来扩展方法。通过将其置于通用程序集中,我们可以在整个企业中使用它

   public static class IEnumerableExtensions
   {
      public static void ForEach<T>( this IEnumerable<T> source, Action<T> action )
      {
         foreach ( T item in source )
            action( item );
      }
   }