我正在尝试实现一个大型对象缓存(最多500000),并且需要能够以两种不同的方式访问它们......
每个项目的关键由三个不同的字符串组成; ItemNumber,PubCode和SizeCode.在某些情况下,我将调用所有这三个值的匹配来返回单个对象.在其他情况下,我将仅在ItemNumber和PubCode上调用匹配,以便返回一组对象.
什么是最好的收藏品?
我考虑过只使用一个通用的对象列表(其中所有三个键值都是属性)并使用LINQ来查询它,但是我不相信这将是最有效的方法当你考虑集合的大小.
任何帮助将一如既往地受到赞赏!
对于任何ItemNumber/PubCode组合,您可能拥有多少项?如果答案是"相当少",那么我会从Lookup<ItemNumberPubCode, Value>(或者a Dictionary<ItemNumberPubCode, List<Value>>)开始 - 所以如果你被要求只查看其中两个,你可以直接进行所有比赛.如果你被要求查看所有三个,你可以很快地获取前两个的所有匹配,然后通过SizeCode对任何匹配进行O(n)扫描.
(这ItemNumberPubCode是封装ItemNumber和的类型PubCode;这可以是匿名类型,a Tuple<string, string>或真实类型.)
如果特定的ItemNumber/PubCode组合可以有很多匹配项,那么您可能需要一个Dictionary<ItemNumberPubCode, Dictionary<string, Value>>- 这将让您有效地搜索所有三个,并且只需要其中两个,您就可以获取字典并使用该Values属性查找所有匹配项该货币对的价值.
| 归档时间: |
|
| 查看次数: |
191 次 |
| 最近记录: |