在C# 中根據值檢索字典鍵
在C# 中,字典是鍵值對,其中每個唯一鍵對應於單個值。但是,不直接支援從值檢索鍵。本文提供了有效的解決方案來應對這項挑戰。
使用查找
由於字典中的值可能不唯一,因此您需要執行查找來查找對應的鍵。這可以使用 Queryable 類別的 FirstOrDefault 方法來實現,如下所示:
var myKey = types.FirstOrDefault(x => x.Value == "one").Key;
此行使用 lambda 表達式迭代字典,並傳回關聯值與「one」相符的第一個鍵。
使用逆向字典
如果字典中的值保證是唯一且插入頻率低於讀取頻率,您可以建立另一個字典,其中值成為鍵,反之亦然。這種逆向字典可以加快鍵檢索速度:
Dictionary<string, string> inverseTypes = new Dictionary<string, string>(); foreach (var item in types) { inverseTypes[item.Value] = item.Key; } string myKey = inverseTypes["one"];
這種方法可以透過值直接找到鍵,但需要維護原始字典和逆向字典。
HashTable 或 SortedLists
雜湊表和排序清單不如按值進行鍵檢索字典。它們通常不提供基於特定值搜尋鍵的有效方法。字典是專門為高效處理鍵值對而設計的。
以上是如何在C#中根據值高效檢索字典鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!