c# – 用于内存中集合的Linq性能
发布时间:2020-12-15 18:20:04 所属栏目:百科 来源:网络整理
导读:我有一个列表:集合用户有大约100K的用户记录(所有用户对象从数据库中完全加载,包括Bio,名字,姓氏等字段).此应用程序从应用程序启动时从数据库中获取并保存在内存中. 然后我有以下代码: User cachedUser = users.FirstOrDefault(x = string.Equals(x.UserNa
我有一个列表:集合用户有大约100K的用户记录(所有用户对象从数据库中完全加载,包括Bio,名字,姓氏等字段).此应用程序从应用程序启动时从数据库中获取并保存在内存中.
然后我有以下代码: User cachedUser = users.FirstOrDefault(x => string.Equals(x.UserName,username,StringComparison.CurrentCultureIgnoreCase)); 我用它来从这个集合中获取用户.但不知何故,我注意到这个操作非常慢.使用Linq查询大型对象的内存集合时是否存在性能问题?我是否应该在每次想要获得用户时调用数据库? 解决方法
如果你想优化你的响应时间,你可以创建一个字典< T,U>并在以下内容中搜索用户:
Dictionary<string,User> usersDictionary = new <Dictionary<string,User>(StringComparer.CurrentCultureIgnoreCase); // After querying the users from the DB add them to the dictionary usersDictionary.Add(user.UserName,user); // Then when you need to retrieve a user User retrieveUser = null; usersDictionary.TryGetValue(username,out retrieveUser); 希望有所帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |