我从外部应用程序获取数据:
class DataItem { public string key; public int Attribute1; public string Attribute2; }
一个线程将其存储在集合中。 其他线程(3-10)按键(90%)和属性(10%)查询集合。
如果我的收藏中有 10、100、1000 多个项目,实现这个的最佳方法是什么?
请您参考如下方法:
如果你真的想要一个内存数据库那么Sqlite使用 managed data provider将是你最好的选择。但是,我怀疑在这种情况下你会接受 ConcurrenctDictionary .这个集合可以轻松处理 1000 多个项目和并行访问它的多个线程。使用此集合的注意事项是您只能为集合中的每个条目指定一个键。您可能需要为要查找的每个属性使用单独的集合。话又说回来,如果按属性查找的频率不够高,那么您可以选择枚举整个集合来查找匹配的属性,而无需单独的集合。