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