C# 使用lambda为泛型列表中的每个对象执行方法

C# 使用lambda为泛型列表中的每个对象执行方法,c#,linq,lambda,C#,Linq,Lambda,我还是lambdas的新手,发现很难找到它的特定特性,但是有可能为通用列表中的每个对象执行一个方法吗?与ConvertAll的工作原理类似,但不是转换,而是实际调用一个方法 public class Mouse() { public void Squeak() { } } List<Mouse> mice = new List<Mouse>(); mice.Add(new Mouse()); mice.Add(new Mouse()); 您可

我还是lambdas的新手,发现很难找到它的特定特性,但是有可能为通用列表中的每个对象执行一个方法吗?与ConvertAll的工作原理类似,但不是转换,而是实际调用一个方法

public class Mouse()
{
    public void Squeak()
    {
    }
}

List<Mouse> mice = new List<Mouse>();

mice.Add(new Mouse());
mice.Add(new Mouse());

您可以使用
List.ForEach()
method():

PS:在你的问题中有什么有趣的答案:

如何为每个鼠标调用Squeak方法


请不要使用
List.ForEach
。它看起来像一个序列操作符。序列操作符不应该有副作用。你正在使用一个看起来像序列操作符的东西,仅仅是为了它的副作用。取而代之的是,只需使用一个普通的老循环:

foreach(var mouse in mice) {
    mouse.Squeak();
}
Eric Lippert有一篇与此主题相关的精彩文章:

mice.ForEach(m => m.Squeak()); 
foreach(var mouse in mice) {
    mouse.Squeak();
}