词典容量上限的问题

使用问题 · 24 次浏览
Mrshuang 创建于 2天3小时前

在批量提取Excel数据时的词典是否存在容量上限的问题?原数据为4列13000行,似乎只能读取到6000行左右(导出到txt后文件大小662K)。但是我查询了C#中词典容量虽然有上限,但这个上限也应该是非常大。不知道是什么原因导致只能读取到部分数据?

在C#中,Dictionary<TKey, TValue>类确实存在容量上限,但这个上限非常大,在大多数实际应用中不太可能达到。

容量限制

  1. ​理论最大容量​​:Dictionary的最大容量受限于.NET对象的大小限制和可用内存。理论上,Dictionary可以存储最多2,147,483,647 (int.MaxValue)个元素。

  2. ​实际限制​​:

    • 可用内存是主要限制因素
    • 32位系统上单个对象大小限制约为2GB
    • 64位系统上这个限制更高

Mrshuang 最后更新于 2025/6/2

回复内容
CL 2天3小时前
#1

中间有空行么?应该不是词典容量的问题。

xlsx,还是xls?

Mrshuang 回复 CL 2天3小时前 :

没有空行,xlsx,为了验证数据条数,特地每一行加了索引,最后一行是"索引":"5936"

Mrshuang 回复 CL 2天3小时前 :

调试记录中,读取显示的是12349行,写入的临时文件打开查看就只有5936行了

[in]提取数据定义【值/表达式】数据:[数据表]A1:D12349
[out]数据词典=>词典内容较多,已写入文件:
Mrshuang 最后更新于 2天3小时前
CL 回复 Mrshuang 2天3小时前 :

弄个示例动作,网址和excel文件发我QQ邮箱,我等调试看看。 197906

Mrshuang 回复 CL 2天3小时前 :

似乎找到原因了,原数据没有空行,但是有空单元格,将所有空单元格填充,就能全部提取了。这一点看是否需要在【Excel文件读写-批量提取数据】一节中加以提示说明。

感谢老大解答和引导。🤝🤝

Mrshuang 最后更新于 2天2小时前
回复主贴