代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

list.foreach方法和集合接口

  •  3
  • BuddyJoe  · 技术社区  · 14 年前

    在.NET 3.5列表中,<>获得foreach方法。我注意到这在IList或IEnumerable上不存在,这里的想法是什么?还有别的办法吗?简单又好的捷径?

    我问是因为我在一次演讲中,演讲者说总是使用更通用的界面。 但是,如果我希望能够转身并使用foreach,为什么要使用ilist<gt;作为返回类型?然后我会把它重新放到一个列表中。

    3 回复  |  直到 14 年前
        1
  •  4
  •   Community Jaime Torres    7 年前

    这里的想法是什么?

    你可以阅读 Eric Lippert blog 原因是没有添加此功能。

    还有别的办法吗?简单又好的捷径?

    为什么不使用foreach关键字呢?我觉得它更可读。

    foreach (var foo in ilist)
    {
        // etc...
    }
    

    尽管你可以添加 ForEach 扩展方法到 IEnumerable<T> 如果你想:

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

    取自 here .

        2
  •  1
  •   Peter Oehlert    14 年前

    它还没有在框架中,但是 Rx 添加与列表的自定义foreach相同的.run(此IEnumerable Enumerable)扩展方法。在这成为标准框架的一部分之前,您必须编写自己的或使用额外的依赖项。

        3
  •  1
  •   BlueRaja - Danny Pflughoeft    14 年前

    为什么是 ForEach 歪投球 IEnumerable<T> ?埃里克·利珀特解释得很好 in his blog . 基本上,LINQ是功能性的(没有副作用),并且 前额 显然是不起作用的。

    但是,为什么它不在 IList<T> ?好。。。 it should be !