2

linqクエリの前にストップウォッチを使用し、LINQクエリの後に停止しようとしましたが、linqクエリに2分かかりますが、stopwtachの結果は40 MSになります!!

これはLINQクエリです

Stopwatch stopwatch = Stopwatch.StartNew();
  var sets =
   from a in patient
   from b in patient
   from c in patient
   from d in patient
   from l in patient
   where a.VisitNum < b.VisitNum && b.VisitNum < c.VisitNum && c.VisitNum < d.VisitNum && d.VisitNum < l.VisitNum
   select new { a, b, c, d, l };
                stopwatch.Stop();

なにか提案を ?

4

2 に答える 2

3

LINQ は遅延実行を使用します。
結果を列挙するまで、クエリはまったく実行されません。

クエリを強制的に実行するには、 を呼び出します.Count()

于 2012-12-02T01:53:21.640 に答える
2

リストに変換することで、stopwatch.Stop() の前に LINQ クエリを強制的に実行できます。

sets.ToList();
stopwatch.Stop()
于 2013-04-23T18:07:54.790 に答える