有没有办法不循环遍历整个哈希表来删除具有指定值的键值对?
如果没有 - 是否有更好的类型我可以使用哪个允许我这样做?
这里有一些关于我正在做什么的背景知识.我确定我过于复杂,而且有更好的方法......
我有一个键/值列表,其中键是"源"电子表格中的列名称,值是"目标"系统中的字段名称.
当我遍历"源"中的列并匹配哈希表中的键时,我可以删除对.
完成后,"源"中可能有列,哈希表中没有匹配的键.用户可以通过选择其中一个剩余值来覆盖它.
这是我需要从哈希表中删除该键/值的地方.
有没有办法不循环遍历整个哈希表来删除具有指定值的键值对?
不.哈希表的要点是它可以通过键快速查找,而不是值.
请注意,您通常应该使用Dictionary<TKey, TValue>
,除非您真的使用.NET 1.1.
如果没有 - 是否有更好的类型我可以使用哪个允许我这样做?
如果您将拥有唯一值以及唯一键,则可以只使用两个词典,每个词都有一个.然后,您可以查找与相关值对应的键,并按键从两个字典中删除.
不,那里没有.
如果你想这样做,通常意味着两件事之一
您的键和值已反转.让您的价值成为您的价值,将您的价值作为您的价
你需要两本词典.一个Dictionary<T1, T2>
和一个Dictionary<T2,T1>
.您需要填充它,以便每对都在两个字典中并且是一致的.它还意味着每个值都是唯一的,而不仅仅是键.如果您当前的值不是唯一的,那么您需要一个Dictionary<T2, List<T1>>
或类似的东西,因为每个值可能映射到多个键.这样做也会使你的结构更难维护.(TwoWayDictionary
如果这是您需要的,请考虑制作新类型.)
归档时间: |
|
查看次数: |
535 次 |
最近记录: |