Dictionary <TKey,TValue>中的键是不可变的吗?

Kev*_*Kev 5 .net c# generics collections

我Dictionary<string, string>从API返回,但根据某些规则需要修改一些关键名称.

在我走向复制到新的道路之前,Dictionary我只是想确认a中的键Dictionary<TKey, TValue>是不可变的.

dri*_*iis 7

您是对的,如果密钥更改,您将需要使用旧密钥删除条目并使用新密钥插入新条目.

如果只有部分键发生变化,则无需复制整个字典.添加和删​​除操作Dictionary都是大致O(1)操作.


小智 7

更像是,如果它是引用类型,您必须确保您使用的类型TKey是不可变的.顺便说一句,字符串是不可变的.值类型可以是可变的,但是您没有机会修改存储的键Dictionary.