我从外部应用程序获取数据:

class DataItem 
{ 
   public string key; 
   public int Attribute1; 
   public string Attribute2; 
} 

一个线程将其存储在集合中。 其他线程(3-10)按键(90%)和属性(10%)查询集合。

如果我的收藏中有 10、100、1000 多个项目,实现这个的最佳方法是什么?

请您参考如下方法:

如果你真的想要一个内存数据库那么Sqlite使用 managed data provider将是你最好的选择。但是,我怀疑在这种情况下你会接受 ConcurrenctDictionary .这个集合可以轻松处理 1000 多个项目和并行访问它的多个线程。使用此集合的注意事项是您只能为集合中的每个条目指定一个键。您可能需要为要查找的每个属性使用单独的集合。话又说回来,如果按属性查找的频率不够高,那么您可以选择枚举整个集合来查找匹配的属性,而无需单独的集合。


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!