ForEach——你在哪里

本文关键字:你在哪里 ForEach | 更新日期: 2023-09-27 18:01:59

可能重复:
为什么IEnumerable接口上没有ForEach扩展方法?

我喜欢List<T>在C#中。这怎么不是IEnumerable<T>?

为什么我必须调用集合的.ToList((才能对每个元素调用操作?请告诉我为什么?非常感谢。

List<T>.ForEach(Action<T> action);

ForEach——你在哪里

语言集成查询(LINQ(。不是语言集成扩展(LIE(。

您特别提到了LINQ对象。其他LINQ(到SQL、到XML(等在实现任意逻辑时会遇到更多困难。

不过,没有什么能阻止你自己实现它。

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

关于这个话题有很多讨论:

参见:

  • IEnumerable<的foreach的LINQ等价物;T>
  • 使用Foreach子句的Lambda表达式