c# - 内存中集合的 Linq 性能

标签 c# asp.net performance linq .net-4.0

我有一个列表:Collection users,其中包含大约 100K+ 条用户记录(所有用户对象都从数据库中完全加载,其中包含 Bio、First name、last name 等字段)。此集合在应用程序启动时从数据库中获取并保存在内存中。

然后我有这样的代码:

User cachedUser = users.FirstOrDefault(x => string.Equals(x.UserName, username,
StringComparison.CurrentCultureIgnoreCase));

我用它从这个集合中获取用户。但不知何故,我注意到这个操作非常慢。使用 Linq 在内存中查询大对象集合时是否存在性能问题?我是否应该在每次想要获得用户时调用数据库?

最佳答案

我认为您可能需要根据您提供给我们的信息重新考虑您的架构。利用数据库,让它为您完成搜索工作。观察、测量,然后做出相应的改变。您可能会意识到您过早地优化了整个事情。

关于c# - 内存中集合的 Linq 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11124273/

相关文章:

c# - 可以在 API 上执行功能吗?

c# - dll 错误的加密失败错误和元数据文件

c# - 构建正则表达式模式以最终从数据中选择所需的文本

javascript - 将数据发布到 iframe(aspx) 以在 aspx 页面的页面加载中捕获它

.net - 为什么第一个 WCF 客户端调用很慢?

performance - 如何在不使用 Web 仪表板的情况下分析 Apache Storm 拓扑?

c# - 触发ListViewItem命令

c# - IMemoryCache 保证唯一的新 key .NET-Core

asp.net - 如何将流excel文件转换为数据表C#?

java - 对大型应用程序进行分析很困难