将结果提取到List时,LINQ的执行速度是否较慢?

Raw*_*hi 3 c# linq

我有以下LINQ语句,我发现它没有像我想的那样快速运行.还有其他变种运行得更快,还是有另一种方法可以更快地完成?

var products = session.Products.Where(x => x.Supplier.Address.State == "HI").ToList();
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 5

您没有声明的是,这是针对特定LINQ提供商的博客文章.让我们把它放在上下文中:

现在查询它:

using(var session=new Session()){
   var products = session.Products.Where(x => x.Supplier.Address.State == "HI")
                                  .ToList();
}
Run Code Online (Sandbox Code Playgroud)

......它的工作原理:) 这就是ObjectDatabase世界中所谓的"深度图"查询,通常会给性能带来麻烦.说实话,我还没有把这个查询挂在多个记录上 - 但从我读过的内容来看,这对于Mongo来说是正常的,并且它支持得很好.

这不是ToList"通常会为性能带来麻烦" 的调用- 事实上,您正在对象数据库中进行"深度图查询".是的,然后你将所有结果提取到内存中,但这是商店的本质,这是引起关注的原因.