是否可以在单个List <T> ForEach中使用Thread.Sleep()?

reg*_*ahn 2 c# linq

是否可以在单个语句中重写以下代码?

foreach(var myVar in varEnumerable)
{
    MyMethod(myVar);
    Thread.Sleep(2000);
}
Run Code Online (Sandbox Code Playgroud)

如果没有Thread.Sleep(),我会把它写成:

varEnumerable.ToList().ForEach(x => MyMethod(x));
Run Code Online (Sandbox Code Playgroud)

adv*_*v12 11

是的,你只需要一些花括号(和空白以获得良好的衡量标准):

varEnumerable.ToList().ForEach(x => {
    MyMethod(x);
    Thread.Sleep(2000);
});
Run Code Online (Sandbox Code Playgroud)

编辑:在问题的评论中已经注意到,这比普通的foreach(由于ToList()调用)效率低,当你添加大括号和空格时,它看起来不那么干净,所以它不是真的大赢.所以这就是你如何做你所要求的,但它可能不是你应该做的:)