服务器性能 - 数据库访问查询结果:List<> 或 IEnumerable<>?

Server performance - database access queries results: List<> or IEnumerable<>?

我正在使用 WebSocketSharp 库在 ASP.NET 服务器上有一个套接字 运行。

服务器端套接字必须访问数据库,因此它return是项目的集合。

目前,我在数据访问层,方法return List<> 来自数据库的类型:

async Task<List<object>> GetListOfItems();

我想知道可枚举实现在性能方面是否更快并且便宜

另外,他们也应该 async 来电吗?

List 是一个 IEnumerable,通过中介 - 如果您浏览参考源:

public class List : IList, System.Collections.IList, IReadOnlyList

IList 是:

public interface IList : ICollection

并且:

public interface ICollection : IEnumerable

所以在实际使用时它们实际上是相同的,速度差异将取决于您在做什么。

如果你想知道什么是最快的,那就测试吧! System.Diagnostics 中有一个秒表 class 就是为了这个目的。

来源:which is Faster? IEnumerable or List With Example.