我们有一个大型的 winforms C# 应用程序,它基本上是一些数据库(CRUD 的东西)的前端,我正在尝试为业务对象实现一些内存缓存。
就像是:
List<Customer> customerCache; // Loaded during app. startup
我已经创建了一些代码来使缓存与数据库保持同步。该代码一直在单独的线程上运行,并且运行良好。我的问题是,根据缓存的大小,在数据库中执行“从 id = x 的客户中选择 *”比使用 foreach(customerCache 中的 foreach Customer cmr)循环遍历缓存以找到该特定对象更快...
有没有办法在我的缓存中快速搜索特定对象?我打算尝试一些算法或更改我的收藏类型,但我希望能听取您的建议。
请注意,我们有几个“List xxxCache”,而且一切都很快(对于小 N,当然)。但是当缓存的数量增加(通常> 3000)时,从数据库中读取的速度会更快。
遍历我的缓存项目以找到特定项目的最佳方法是什么?所有业务项目都继承自一个共同的祖先并具有“ID”属性(整数、唯一)。
对不起我的英语不好,这不是我的主要语言。最好的问候,来自巴西的问候。