【发布时间】:2012-10-12 07:28:54
【问题描述】:
我想将KeyValuePair<T,U> 添加到Dictionary<T, U>,但我不能。我必须分别传递key和value,这意味着Add方法必须创建一个新的KeyValuePair对象来插入,效率不高。我不敢相信 Add 方法上没有 Add(KeyValuePair<T, U>) 重载。任何人都可以提出这种明显疏忽的可能原因吗?
【问题讨论】:
-
不存在这种重载,因为字典不仅“插入”新的 KeyValuePair。 (我什至怀疑它是否以这种格式存储在引擎盖下)它测试密钥是否已经存在并可能执行一些操作以将其放置在正确的位置以尽可能快地保持查询。
-
你可以只做一个赋值:dictionary[key] = value;
-
你的键和值的类型是什么?
-
我认为您可以忽略“添加”方法的开销。
-
也可以使用dictionary.Add(pair.key, pair.Value),其中pair是KVP对象
标签: c# dictionary key-value generic-collections