将IEnumerable <T>转换为List <T> Performance

Poo*_*rna 2 c# linq linq-to-sql

我有一个返回的Web服务List<SampleClass>.我使用LINQ-to-SQL从数据库中获取数据IEnumerable<SampleClass>.然后转换IEnumerable<SampleClass>List<SampleClass>.

LINQ到SQL操作表现还算可以,但IEnumerable<SampleClass>List<SampleClass>花费一些时间来做手术.是否有任何解决方案,从获得最佳的性能IEnumerable<SampleClass>List<SampleClass>

我从我的数据库中读取了超过3000条记录.

谢谢

Hab*_*bib 11

IEnumerable to List需要一些时间来进行操作.

您获得延迟的原因是,当您这样做时ToList,这是执行实际查询并从数据库中获取记录的时间.

这称为延迟执行.

var query = db.yourTable.Where(r=> r.ID > 10);
var List = query.ToList(); //this is where the actual query gets executed. 
Run Code Online (Sandbox Code Playgroud)

当使用过你迭代查询ToList,ToArray,Count()等,当实际查询被执行就是.

有没有任何解决方案可以从IEnumerable到List获得最佳性能?我从我的数据库中读取了超过3000条记录.

没有改进查询,不,你不能.但是你真的需要获取3000条记录,你可以使用Skip和查看分页Take