Ste*_*ill 6 .net lookup performance dictionary
我有一个10000产品/颜色/大小组合的字典,我用以下方法创建:
AllRecords = DB.ProductColourSizes _
.ToDictionary(function(b) String.Format("{0}_{1}_{2}", _
b.ProductCode, b.ColourCode, b.SizeCode))
Run Code Online (Sandbox Code Playgroud)
所以一个示例键就像"13AI_GRS_M"
我必须每隔30分钟将我的数据库与公司的ERP同步,对于每个颜色/大小组合,我需要使用此字典来添加,编辑或删除记录.我希望他们提供身份证号码.
我不知道词典在内部如何运作..NET根据这样的密钥找到正确的值有多快?我应该对数据库查询进行排序,还是.NET有其他方法来识别密钥?
或者我应该将其转换为List并使用Dictionary来识别正确的索引?或完全相反的方式?
我也以这种方式在网站的应用程序中使用静态字典,因此学习更好的方法可以产生相当大的影响.
非常感谢,史蒂夫
对于你正在做的事情,字典是完美的。
字典中项目的键的检索时间非常快,但最终依赖于键的哈希码函数(在您的情况下string.GetHashCode())。
您很幸运,因为 .Net 字符串的 GetHashCode() 函数非常好。如果确实遇到哈希码冲突,.Net 将调用对象上的 Equals 方法,从而保证唯一性。
我们有包含数十万个项目的字典,查找时间可以忽略不计。
在这种情况下,对数据库中的结果集进行排序将没有任何好处。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
1810 次 |
| 最近记录: |