相关疑难解决方法(0)

在.NET中,哪个循环运行得更快,'for'或'foreach'?

在C#/ VB.NET/.NET中,哪个循环运行得更快,for或者foreach

自从我读了一个for循环工程快于foreach环路很久以前我以为这对所有集合,泛型集合,所有阵列,等真正站在

我搜索谷歌并发现了一些文章,但其中大多数都没有结果(阅读文章的评论)和开放式.

什么是理想的是列出每个场景和相同的最佳解决方案.

例如(只是它应该如何的一个例子):

  1. 迭代1000多个字符串的数组 - for比...更好foreach
  2. 迭代IList(非泛型)字符串 - foreach比...更好for

在网上找到的一些参考文献:

  1. Emmanuel Schanzer的原创宏伟文章
  2. CodeProject FOREACH Vs. 对于
  3. 博客 - foreach或不是foreach,这就是问题
  4. ASP.NET论坛 - NET 1.1 C#forvsforeach

[编辑]

除了可读性方面,我对事实和数据非常感兴趣.有些应用程序的最后一英里性能优化受到挤压很重要.

.net c# performance for-loop

322
推荐指数
20
解决办法
19万
查看次数

C# - For vs Foreach - 巨大的性能差异

我正在对一个算法进行一些优化,该算法在给定的数组中找到大于X的最小数字,但随后ai偶然发现了一个奇怪的差异.在下面的代码中,"ForeachUpper"在625ms结束,"ForUpper"结束,我相信,几个小时(疯狂地慢).为什么这样?

  class Teste
{
    public double Valor { get; set; }

    public Teste(double d)
    {
        Valor = d;
    }

    public override string ToString()
    {
        return "Teste: " + Valor;
    }
}

  private static IEnumerable<Teste> GetTeste(double total)
    {
        for (int i = 1; i <= total; i++)
        {
            yield return new Teste(i);
        }
    }
    static void Main(string[] args)
    {
        int total = 1000 * 1000*30 ;
        double test = total/2+.7;

        var ieTeste = GetTeste(total).ToList();


        Console.WriteLine("------------");

        ForeachUpper(ieTeste.Select(d=>d.Valor), test);
        Console.WriteLine("------------");
        ForUpper(ieTeste.Select(d => d.Valor), …
Run Code Online (Sandbox Code Playgroud)

c# performance foreach for-loop

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

标签 统计

c# ×2

for-loop ×2

performance ×2

.net ×1

foreach ×1