[英]Execute method for each object in generic list using lambda
我還是lambdas的新手並且發現很難找到它的特定功能,但是是否可以為通用列表中的每個對象執行一個方法? 與ConvertAll的工作方式類似,但不是轉換,而是實際調用方法。
public class Mouse()
{
public void Squeak()
{
}
}
List<Mouse> mice = new List<Mouse>();
mice.Add(new Mouse());
mice.Add(new Mouse());
你如何稱呼每只鼠標的方法吱吱聲?
mice.???(m => m.Squeak());
您可以使用List<T>.ForEach()
方法( 請參閱MSDN ):
mice.ForEach(m => m.Squeak());
PS:你的問題答案有多么有趣:
你如何稱呼每只鼠標的方法吱吱聲?
請不要使用List<T>.ForEach
。 它看起來像一個序列運算符。 序列操作符不應有副作用。 您正在使用看起來像序列運算符的東西,僅用於其副作用。 相反,只需使用一個普通的無聊循環:
foreach(var mouse in mice) {
mouse.Squeak();
}
Eric Lippert有一篇與此主題相關的精彩文章: foreach
vs. ForEach
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.