c# - 将 IEnumerable<T> 转换为 List<T> 性能

标签 c# linq linq-to-sql

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

LINQ-to-SQL 操作性能还可以,但是 IEnumerable<SampleClass>List<SampleClass>需要一些时间来做手术。是否有任何解决方案可以从 IEnumerable<SampleClass> 获得最佳性能至 List<SampleClass>

我从我的数据库中读取了 3000 多条记录。

谢谢

最佳答案

IEnumerable to List takes some time to do the operation.

出现延迟的原因是,当您执行 ToList 时,即执行实际查询并从数据库中获取记录的时间。

这叫做 Deferred execution .

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

当您使用 ToListToArrayCount() 等遍历查询时,即实际查询被执行的时候。

Are there any solutions to get best performance from IEnumerable to List? I read more than 3000 records from my database.

如果不改进查询,不,你做不到。但是你真的需要获取 3000 条记录吗,你可以使用 Skip 查看分页。和 Take

关于c# - 将 IEnumerable<T> 转换为 List<T> 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13509487/

相关文章:

c# - 单击 setup.exe 时无法获取应用程序启动路径

c# -/langversion 的选项 '7.3' 无效;必须是 ISO-1、ISO-2、默认值或 1 到 6 范围内的整数

c# - 仅更改顶级函数声明的正则表达式

c# - 在子对象属性上使用 Sum 的 LINQ to Entities 查询问题

c# - LINQ-to-SQL : Convert Func<T, T, bool> 到表达式<Func<T, T, bool>>

c# - Linq to SQL 立即执行查询

c# - ASP :listview add a <div class ="clear"> after every 3 items

asp.net - 如何使用 linq 在 asp.net/vb.net 中过滤列表

c# - 如果联接中有多个字段,您如何在 Linq 中离开联接?

c# - 如何在 Linq To SQL 中强制 varchar 长度