按价值获得字典键
可能重复:
获得通用字典价值的关键?
如何通过C#中的值获取Dictionary键?
Dictionary<string, string> types = new Dictionary<string, string>()
{
{"1", "one"},
{"2", "two"},
{"3", "three"}
};
我想要这样的东西:
getByValueKey(string value);
getByValueKey("one")
必须返回"1"
。
这样做的最佳方式是什么? 也许HashTable,SortedLists?
值不一定必须是唯一的,因此您必须执行查找。 你可以做这样的事情:
var myKey = types.FirstOrDefault(x => x.Value == "one").Key;
如果值是唯一的并且插入的次数少于读取次数,则创建一个反向字典,其中值是键,键是值。
你可以这样做:
KeyValuePair<TKey, TValue>
(如果字典中有许多条目,这将会带来巨大的性能下降) 如果不考虑性能,请使用方法1,如果不考虑内存,请使用方法2。
此外,所有密钥必须是唯一的,但值不必是唯一的。 您可能有多个具有指定值的键。
你有什么理由不能扭转关键价值关系吗?
如果这个值存在多于一个密钥会怎么样?
应该返回哪个密钥?
为了避免做出假设,Microsoft没有包含GetKey
方法。