c# - 是否有像Apply这样的内置扩展方法?

标签 c# .net

我正在寻找像Apply这样的内置扩展方法:

collection.Apply (predicate)

它将对集合中包含的所有项目应用一种方法。

我先问,这样我就不会写出已经存在的东西。

编辑:我没有使用 foreach 的原因是因为我想使用 LINQ 来表达该方法。

最佳答案

嗯,有List<T>.ForEach ,但 IEnumerable<T> 上没有任何内容。不过,很多第三方“额外扩展方法”工具包中都有这种东西:)

我同意其他答案 foreach通常是更好的方法 - 尽管它有时可能会产生以下差异:

DoSomething(x => x.Where(...).Select(...).ForEach(...));

DoSomething(x => {
    foreach (var y in x.Where(...).Select(...)) {
        (...)
    }
});

这比一行更重要。

我认为,如果我已经有一个委托(delegate),或者可能有一个方法组,我通常只会使用这样的方法。例如,能够有一个单行代码来转储过滤后的集合是非常好的:

people.Where(p => p.Age >= 18).ForEach(Console.WriteLine);

在更多地接触函数式编程之后,我可能会更频繁地使用它。

关于c# - 是否有像Apply这样的内置扩展方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/844104/

相关文章:

.net - 550 未采取请求的操作 : mailbox unavailable or not local

c# - WPF Popup 作为用 xaml 编写的单独控件

c# - 如何使用C#使用多维数组

C# 在不知道对象类型的情况下获取对象的名称

c# - 在异步方法中处理空任务的最佳方法?

.net - 数据库抽象层设计 - 以正确的方式使用 IRepository?

c# - 如何从 Apache NMS ActiveMQ 消息中获取底层流句柄

c# - .NET 中的轻量级 HTTP 服务器库

c# - 从 NOSQL 数据库中读出 Double 和 DateTime

c# - Floyd-Warshall 找不到问题所在