我想使用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));
答案 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 );
}
}