我如何确定C#词典的当前容量?

li

列表具有用于获取计数及其容量的单独属性像所有集合一样,字典也具有Count属性,并且它具有容量,因为它具有几个允许您指定它的构造函数,并且Add方法的文档中提到了它。但是,我没有任何查询字典的当前能力的方法。

即使没有办法获得字典的当前容量,是否有任何方法可以预测何时可能发生重新分配?

Zein Makki

字典的工作方式与列表不同。如果您检查Microsoft提供源代码您可以找到多个私有字段,可能会有所帮助。

请注意,这是一个封装的实现细节,您不应在生产代码中依赖它,因为名称,私有成员和内部成员的行为可能会更改,恕不另行通知!

您有内部数组int[] bucketsEntry[] entries您也有int freeListint freeCount您可以使用反射来解决这些问题。

要回答您的问题,是的,在每个插入上都会触发重新分配,这是实际的代码:

int index;
if (freeCount > 0)
{
    index = freeList;
    freeList = entries[index].next;
    freeCount--;
}
else
{
    if (count == entries.Length)
    {
        Resize();
        targetBucket = hashCode % buckets.Length;
    }
    index = count;
    count++;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何确定我正在使用的当前shell

在Go中,给定位置名称,我们如何确定该位置的当前时间?

我如何移调我的当前范围?

如何获得我的当前时间

我如何获得榆木的当前时间?

如何确定MySQL中的当前定界符?

如何确定视图的当前方向(RTL / LTR)?

如何确定WPF画布的当前边界?

从Django内部确定的当前目录(os.getcwd)如何?

如何确定Middleman 4中的当前布局?

如何确定方法中的当前线程?

如何确定Jenkins管道中的当前操作系统

如何确定std :: ofstream打开的文件的当前大小?

如何确定控制台输出的当前颜色?

如何确定重写后挂钩中的当前分支

如何将我的日期时间选择器与我的电脑在 C# 中的当前日期进行比较?

如何使用C#获取.NET中的当前用户名?

如何获取动态表中的当前行索引?C#/ ASP.NET MVC

如何在线程中的当前作业完成时中止线程C#

如何在wpf C#中保持usercontrol的当前状态

存储在MSSQL中时如何检查时间字段介于C#中的当前时间之间

如何在ASP.NET C#中突出显示ActionLink的当前选择

如何修复错误,名称“ ”在 c# 中的当前上下文中不存在

如何检查当前密钥是否在我的词典中?

如何基于其他词典订购词典?C#

我可以在形状中添加超链接以关闭C#中的当前Powerpoint演示文稿吗

Java Apache FTPClient:如何知道我的当前目录

我如何实时获取collectionView的当前部分编号

如何从后台线程获取我的UWP应用的当前视图?