lambda删除集合中符合Predict的所有元素

时间:2012-04-03 01:10:22

标签: c# collections lambda

我不想根据预测表达式删除所有销售

  IQueryable<Sale> sales = entites.Sales.Where<Sale>(s => s.EmployeeId == check.EmployeeId);
  foreach (Sale sale in sales)
            entites.Sales.DeleteObject(sale);

我正在寻找一个可以在一行代码中执行此操作的lambda。 选择和删除。

2 个答案:

答案 0 :(得分:2)

讽刺版:

IQueryable<Sale> sales = entites.Sales.Where<Sale>(s => s.EmployeeId == check.EmployeeId); foreach (Sale sale in sales) entites.Sales.DeleteObject(sale);

另一个版本:

var sales = entites.Sales.Where<Sale>(s => s.EmployeeId == check.EmployeeId).ToList().ForEach(entites.Sales.DeleteObject);

答案 1 :(得分:1)

我认为System.Linq.Enumerable中没有针对ForEach的内置扩展方法。您可以轻松创建自己的:

public static IEnumerable<T> ForEach<T>(this IEnumerable<T> sequence, Action<T> action)
{
    foreach (T element in sequence)
    {
        action(element);
        yield return element;
    }
}