我正在寻找像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/