这个问题可能会以不同的格式提出,但对于我目前的要求,有人会建议哪个是最好的..
在ASP.Net中我有自己的本地和&全局资源,我将键值对存储在静态Dictionary对象中,总共可能存在最多10,000个值(所有页面)。当asp.net应用程序加载页面时,它将值存储在我的静态字典对象中。当再次访问页面而不是从资源文件中读取值时,它将从静态Dictionary对象提供。
我的问题是性能原因字典是最好的还是应该使用SortedList / SortedDictionary
答案 0 :(得分:1)
排序会增加开销,所以如果你不需要排序,你只是根据键从字典中查找单个页面,那么我会坚持使用字典。
从你的情况来看,我认为查找速度是最重要的问题。
SortedDictionary使用红黑树,这是一种二进制树,只要添加/删除项目,就会对集合进行排序。因此,如果您正在寻找值的范围,集合中一个项目相对于另一个项目的位置很重要,那么SortedDictionary是有意义的。在您可能需要使用索引(如数组)而不是密钥访问集合的地方,SortedList是有意义的。
Dictionary使用散列表来散列和存储它用于查找的键,因此它可以非常快速地查找随机的单个项目。这与您的方案相符。
SortedDictionary的操作顺序为O(log n),用于添加/查找,其中Dictionary在O(1)上操作以进行添加/查找。
请参阅a comparison of the System.Collections.Generic collections。