哪个是更快的列表<string> .foreach或listString.GetEnumerator()

Sim*_*ons 2 .net c# list

我编写了以下代码来打印列表中的项目值.现在我想测量哪一个更快,我将有大量的清单来处理.请说明为什么你认为更好(如有任何证据)

那么我该如何计算处理时间呢?手动创建一个庞大的列表是唯一的选择吗?

  public void printMedod(string strPrintListVal)
        {
            Console.WriteLine(strPrintListVal);
        }


        static void Main(string[] args)
        {
            Program p1 = new Program();

            List<string> listString = new List<string> { "Rox","Stephens","Manahat","Lexus",":)"};
            listString.ForEach(p1.printMedod);
            Console.ReadKey();
        }
Run Code Online (Sandbox Code Playgroud)

我也可以使用GetEnumerator做同样的事情:

        static void Main(string[] args)
        {
            List<string> listString = new List<string> { "Rox","Stephens","Manahat","Lexus",":)"};
            var enumerator = listString.GetEnumerator();
            while (enumerator.MoveNext())
            {
                var pair = enumerator.Current;
                Console.WriteLine(pair);
            }
            Console.ReadKey();
        }
Run Code Online (Sandbox Code Playgroud)

Ale*_*lex 5

我已经ForEach通过列表,但我被告知for循环比其他任何东西都要快:

for(int i = 0;i < stringList.Length; i++)
{
    Console.WriteLine(stringList[i]);
}
Run Code Online (Sandbox Code Playgroud)

  • 我相信,如果底层类型有一个快速的索引器,那么是的.对阵列特别有用. (2认同)