在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中文網其他相關文章!