首页 > 解决方案 > 服务器性能 - 数据库访问查询结果:List<> 还是 IEnumerable<>?

问题描述

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

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

目前,我在数据访问层,方法List<>从数据库返回类型:

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

我想知道一个可枚举的实现是否会更快并且在性能方面也很便宜

另外,它们也应该被async调用吗?

标签: c#performancesocketsbusiness-logic

解决方案


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

公共类列表:IList、System.Collections.IList、IReadOnlyList

IList 是:

公共接口 IList : ICollection

和:

公共接口 ICollection : IEnumerable

因此,实际上在实际使用它们时它们是相同的,并且速度差异将取决于您正在做什么。

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

来源:哪个更快?IEnumerable 或 List With Example。


推荐阅读