C# c中foreach和委托循环的区别是什么#

C# c中foreach和委托循环的区别是什么#,c#,.net,C#,.net,我在这里读到有人告诉我,委托循环的性能不如foreach命令 我想知道两者的区别是什么。为什么会更好?在这种情况下,我们只需要使用委托循环 有没有人比较过这两件事。看看这个链接: 在问题中是您的问题,在评论中有很好的答案。您可以实现这两个解决方案,然后在IL中比较它们 然后你就会知道有一些显著的区别 关于性能,请编写两个应用程序,在一段时间内创建一个包含1mln条目的循环并执行。然后在最后比较执行时间 编辑: 不同之处可能在于使用委托时,您可以通过uknow方法对示例字符串列表执行操作 dele

我在这里读到有人告诉我,委托循环的性能不如foreach命令

我想知道两者的区别是什么。为什么会更好?在这种情况下,我们只需要使用委托循环

有没有人比较过这两件事。

看看这个链接:
在问题中是您的问题,在评论中有很好的答案。

您可以实现这两个解决方案,然后在IL中比较它们

然后你就会知道有一些显著的区别

关于性能,请编写两个应用程序,在一段时间内创建一个包含1mln条目的循环并执行。然后在最后比较执行时间

编辑:

不同之处可能在于使用委托时,您可以通过uknow方法对示例字符串列表执行操作

delegate StringListOperator(string s)

public operate(StringListOperator operator) {
   String.ForEach(operator);
}
我不是百分之百确定语法,但我希望你明白了


如果您只打算在使用简单foreach的某些方法中迭代列表,这对我来说似乎只是一种语法糖。

性能通常不会成为问题,但是在使用委托与foreach循环时,您必须小心状态捕获。基本上,编译器会将循环中使用的非常量变量复制到一组嵌套的字段中。这有时会造成不良影响

我知道你说什么,但我想知道别人知道什么。如果我真的这样做了,为什么我要写这段代码?