C# 当字典增长时会发生什么?

C# 当字典增长时会发生什么?,c#,.net,dictionary,theory,C#,.net,Dictionary,Theory,我试着到处找这个,如果是重复的,我道歉 我们知道,在引擎盖下,字典是以固定的大小创建的,然后随着填满而扩展。太好了 假设我初始化一个大小为50的字典,然后我开始将项目放入字典中。有一些冲突(不管怎样),但在某个时候字典需要重新生成 我的假设是,当这种重新增长发生时,字典中当前的所有项都需要相应地重新计算它们的位置。我的想法正确吗?正如@someone所建议的,最好阅读参考资料或自己阅读资料,以了解那里真正发生了什么。你的假设在理论上可能是正确的。但是请考虑什么是保证是函数< /强>,并且内部发生

我试着到处找这个,如果是重复的,我道歉

我们知道,在引擎盖下,字典是以固定的大小创建的,然后随着填满而扩展。太好了

假设我初始化一个大小为50的字典,然后我开始将项目放入字典中。有一些冲突(不管怎样),但在某个时候字典需要重新生成


我的假设是,当这种重新增长发生时,字典中当前的所有项都需要相应地重新计算它们的位置。我的想法正确吗?

正如@someone所建议的,最好阅读参考资料或自己阅读资料,以了解那里真正发生了什么。你的假设在理论上可能是正确的。但是请考虑<强>什么是保证是函数< /强>,并且内部发生的所有操作可能不同于库到另一个库,甚至是发布到优化库的另一个版本,等等。

通常可以使用这样的问题。我还没有读过代码,但它几乎肯定包含了您可能需要的关于实现的所有答案。据我所知,这本词典是一本。。大致相同的逻辑适用于
列表
StringBuilder
内存流
等具有/允许指定初始容量并使用某种抢占式缓冲的对象。