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

編集

この質問ではStopWatchの詳細情報を使用してください

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 に答える