除了我有一个(大)字典实例集合。该字典中的键值始终是 10 个已知字符串之一。
如果集合包含1000000个条目,那个字符串键值是否会为每个实例和键占用内存?有没有什么好的方法可以优化这样的情况,也许使用字符串实习?
另一种方法是使用 key 的缩写,并在字符串和缩写之间进行转换,但语法有点困惑......
最佳答案
通常不是——它们被存储为一个单一的不可变变量。字符串可以是 interned这将有助于节省内存。
但这取决于。如果您每次都构造字符串(例如串联),它们将不会被保留。将它们定义为常量确保它们将被保留。
您可以使用 object.ReferenceEquals()
检查内存中的两个字符串是否相同。
关于c# - 优化字典键的内存要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5127055/