是否可以在单个语句中重写以下代码?
foreach(var myVar in varEnumerable)
{
MyMethod(myVar);
Thread.Sleep(2000);
}
如果没有Thread.Sleep()
,我会把它写成:
varEnumerable.ToList().ForEach(x => MyMethod(x));
答案 0 :(得分:11)
是的,你只需要一些花括号(和空白以获得良好的衡量标准):
varEnumerable.ToList().ForEach(x => {
MyMethod(x);
Thread.Sleep(2000);
});
编辑:在问题的评论中已经注意到,这比普通的foreach(由于ToList()
调用)效率低,并且当你添加大括号和空格时并不看起来更清洁,所以它并不是一个很大的胜利。所以这就是你如何做你所要求的,但它可能不是你应该做的:)
答案 1 :(得分:3)
怎么样:
varEnumerable.ToList().ForEach(x => {MyMethod(x);Thread.Sleep(2000);});
您可以使用荣誉({}
)和分号(;
)对多个命令进行分组。
请注意,您可以在此类环境中使用任何类型的说明(for
循环,说明,...)