使用LINQ枚举的正确方法是什么?

Jad*_*ias 6 .net c# linq

码:

 var result = db.rows.Take(30).ToList().Select(a => AMethod(a));
Run Code Online (Sandbox Code Playgroud)

db.rows.Take(30)是Linq-To-SQL

我使用ToList()来枚举结果,因此查询的其余部分不会转换为SQL

这是最快的方法吗?ToArray的()?

jas*_*son 14

用途Enumerable.AsEnumerable:

var result = db.rows
               .Take(30)
               .AsEnumerable()
               .Select(a => AMethod(a));
Run Code Online (Sandbox Code Playgroud)

  • 对于那些没有单击链接的人,所有AsEnumerable都会返回其类型为IEnumerable <T>的参数.这将保留延迟执行并消除对ToList()或ToArray()创建的中间数据结构的需要. (3认同)