2

我编写了以下代码来打印列表中的项目值。现在我想衡量哪个更快,因为我将有大量的清单要处理。并请说明您认为这更好的原因(如果有证据)

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

  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();
        }

我也可以使用 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();
        }
4

3 回答 3

5

我已经ForEach浏览了列表,但有人告诉我 for 循环比其他任何东西都快:

for(int i = 0;i < stringList.Length; i++)
{
    Console.WriteLine(stringList[i]);
}
于 2012-07-10T09:02:33.123 回答
3

您可以使用LinqPad,它显示执行时间

于 2012-07-10T09:02:20.797 回答
1

这里也不是最好的选择,只是做

static void Main(string[] args)
{
    var stringList = new List<string> 
        { "Rox", "Stephens", "Manahat", "Lexus", ":)" };

    foreach(var s in stringList)
    {
        Console.WriteLine(s);
    }

    Console.ReadKey();
}

编辑

在这个问题中使用秒表更多信息

using System.Diagnotics;

var stopWatch = new StopWatch();

stopWatch.Start();

// Do somthing
// If somthing is really fast do lots of somthing

stopWatch.Stop();

// The duration is a TimeSpan in stopWatch.Elapsed;
于 2012-07-10T09:00:18.937 回答