c# - 优化字典键的内存要求

标签 c# .net collections

除了我有一个(大)字典实例集合。该字典中的键值始终是 10 个已知字符串之一。

如果集合包含1000000个条目,那个字符串键值是否会为每个实例和键占用内存?有没有什么好的方法可以优化这样的情况,也许使用字符串实习?

另一种方法是使用 key 的缩写,并在字符串和缩写之间进行转换,但语法有点困惑......

最佳答案

通常不是——它们被存储为一个单一的不可变变量。字符串可以是 interned这将有助于节省内存。

但这取决于。如果您每次都构造字符串(例如串联),它们将不会被保留。将它们定义为常量确保它们将被保留。

您可以使用 object.ReferenceEquals() 检查内存中的两个字符串是否相同。

关于c# - 优化字典键的内存要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127055/

相关文章:

c# - 具有泛型的对象类型中的 "apostrophe + number"是什么意思(例如 "Collection` 1")?

C#:非泛型类型中的泛型成员?

c# - 找到第一个有 50 个因数的三角数?

c# - 从存储过程填充 gridview 的问题

c# - 从 C# 运行 matlab 并将参数提供给 matlab

c# - 如何设置migradoc图表x轴刻度线

.net - 如何在 LINQ to SQL 中编写此 T-SQL?

c# - IsDirty 标志模式

c++ - 可用于存储和管理整数集合的最佳 C++ 数据结构是什么?

java - 此代码示例真的返回正确的参数化类型吗?