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 回答