是否可以在单个语句中重写以下代码?
foreach(var myVar in varEnumerable) { MyMethod(myVar); Thread.Sleep(2000); }
如果没有Thread.Sleep()
,我会把它写成:
varEnumerable.ToList().ForEach(x => MyMethod(x));
adv12.. 11
是的,你只需要一些花括号(和空白以获得良好的衡量标准):
varEnumerable.ToList().ForEach(x => { MyMethod(x); Thread.Sleep(2000); });
编辑:在问题的评论中已经注意到,这比普通的foreach(由于ToList()
调用)效率低,当你添加大括号和空格时,它看起来不那么干净,所以它不是真的大赢.所以这就是你如何做你所要求的,但它可能不是你应该做的:)
是的,你只需要一些花括号(和空白以获得良好的衡量标准):
varEnumerable.ToList().ForEach(x => { MyMethod(x); Thread.Sleep(2000); });
编辑:在问题的评论中已经注意到,这比普通的foreach(由于ToList()
调用)效率低,当你添加大括号和空格时,它看起来不那么干净,所以它不是真的大赢.所以这就是你如何做你所要求的,但它可能不是你应该做的:)