关于c#:修改字典值而不分配

Modify dictionary values without allocating

我需要修改字典中的所有值。通常,在枚举字典时修改它会引发异常。有各种方法可以解决这个问题,但我看到的所有答案都涉及到分配临时存储。有关示例,请参见在foreach循环中编辑字典值。

我希望在不分配任何内存的情况下修改所有值。为忽略字典版本的值编写自定义结构枚举器是可以的,但是由于字典的所有重要成员都是私有的,所以这似乎是不可能的。


在这里,您肯定正在进行一些基本的性能优化。

根据您在注释中提供的附加信息,听起来最好的方法(除了升级内存以便处理更多的分配)可能是采用字典源代码并为此专门创建一个新类,如果只是更改,则不会增加version字段。一个值。