相关疑难解决方法(0)

C#中IEnumerable类的foreach和for循环之间的区别

有人告诉我,以下代码块之间存在性能差异.

foreach (Entity e in entityList)
{
 ....
}
Run Code Online (Sandbox Code Playgroud)

for (int i=0; i<entityList.Count; i++)
{
   Entity e = (Entity)entityList[i];
   ...
}
Run Code Online (Sandbox Code Playgroud)

哪里

List<Entity> entityList;
Run Code Online (Sandbox Code Playgroud)

我不是CLR期望,但从我可以告诉他们应该归结为基本相同的代码.有没有人有这样或那样的混凝土(哎呀,我拿着装满污垢)的证据?

c# performance loops

13
推荐指数
3
解决办法
2万
查看次数

foreach 比 for 慢 20 倍?

迭代没有元素的数组或列表时,foreach 与 for 相比似乎非常慢。运行下面的代码,我得到的结果是:

3ms
143ms
7ms

foreach 真的很慢还是我做错了什么?

var l = new List<int>();
var watch = new Stopwatch();
var test = 0;

watch.Start();
for (int i = 0; i < 10000000; i++) 
    if (l.Count > 0) 
        test = 1;
watch.Stop();
Debug.Log(watch.ElapsedMilliseconds);

watch.Reset();
watch.Start();
for (int i = 0; i < 10000000; i++) 
    foreach (var item in l) 
        test = 1;
watch.Stop();
Debug.Log(watch.ElapsedMilliseconds);

watch.Reset();
watch.Start();
for (int i = 0; i < 10000000; i++) 
    for (int j = 0; j …
Run Code Online (Sandbox Code Playgroud)

c# performance foreach loops for-loop

1
推荐指数
1
解决办法
8294
查看次数

标签 统计

c# ×2

loops ×2

performance ×2

for-loop ×1

foreach ×1