小编Ste*_*ill的帖子

通过密钥查找.NET字典值的速度?

我有一个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来识别正确的索引?或完全相反的方式?

我也以这种方式在网站的应用程序中使用静态字典,因此学习更好的方法可以产生相当大的影响.

非常感谢,史蒂夫

.net lookup performance dictionary

6
推荐指数
1
解决办法
1810
查看次数

我可以在SitecoreQuery属性中使用相对快速查询吗?

我正在安装Sitecore 7 + Glass Mapper 3,我希望对其进行优化.

我的代码的一个例子是:

[SitecoreQuery(".//*[@@templateid = '{011EC776-D9F3-4D73-8D8D-E454417E7574}']", 
                                                               IsRelative = true)]
IEnumerable<ItineraryLine> Itinerary { get; set; }
Run Code Online (Sandbox Code Playgroud)

我希望使用FastQuery,但我得到错误:

期望在第4位的字符串结束

尝试以下解决方案,这涉及到getLookupSourceItems管道的插入- 但我不认为这是正确的管道,因为它不会在调试中触发.

Glass是否在此场景中使用了另一个管道(如果有的话)?有没有不同的方法可以解决我加快速度的目标?

如果我没有使用属性而是使用扩展方法,我可以手动执行此操作并使用*[@@id='']设置根节点,但我希望尽可能避免这种情况.

c# sitecore sitecore7 glass-mapper

5
推荐指数
1
解决办法
1771
查看次数

标签 统计

.net ×1

c# ×1

dictionary ×1

glass-mapper ×1

lookup ×1

performance ×1

sitecore ×1

sitecore7 ×1