在 C# 中按值检索字典键
在 C# 中,通过关联值获取字典键需要标准字典之外的额外查找操作功能。实现方法如下:
使用 FirstOrDefault() 方法:
如果不能保证字典中的值是唯一的,您可以使用 FirstOrDefault( ) Enumerable 类的方法来查找第一个匹配值:
// Dictionary with string keys and values Dictionary<string, string> types = new Dictionary<string, string>() { { "1", "one" }, { "2", "two" }, { "3", "three" } }; // Get the key associated with the value "one" string myKey = types.FirstOrDefault(x => x.Value == "one").Key;
在此在这种情况下,myKey 将包含值“1”。请注意,如果字典中的多个值具有相同的值,则此方法可能不会返回键。
创建逆向字典:
或者,如果值是唯一的并且插入的频率低于读取的频率,您可以创建一个逆字典,其中值是键,键是值:
// Create an inverse dictionary Dictionary<string, string> inverseTypes = new Dictionary<string, string>(); // Populate the inverse dictionary foreach (var kvp in types) { inverseTypes[kvp.Value] = kvp.Key; } // Get the key associated with the value "one" string myKey = inverseTypes["one"];
与这种方法,可以直接使用逆字典来执行查找操作,而不需要单独的查找。请记住,由于创建逆字典,此选项会涉及额外的内存开销。
以上是如何在 C# 中从值中检索字典键?的详细内容。更多信息请关注PHP中文网其他相关文章!