.NET 通用字典:处理单个值的多个键
标准 .NET Dictionary
对象提供简单的键到值访问。 但是,当多个键映射到同一值时,检索与特定值关联的键会变得复杂。本文介绍了使用自定义双向字典的解决方案。
构建双向字典
为了克服这个限制,我们创建了一个 BiDictionary<TFirst, TSecond>
类。 此类使用两个内部字典管理两个方向的键值关系:firstToSecond
(键到值)和 secondToFirst
(值到键)。
添加条目和访问数据
Add
方法可以有效地处理添加新的键值对。它会检查现有条目,并在必要时创建新列表,以便为单个值存储多个键。
BiDictionary
类提供用于键到值和值到键访问的索引器。 为了避免歧义,还包括专用方法 GetByFirst
和 GetBySecond
。
说明性示例
让我们考虑一个实际的例子:
<code class="language-C#">BiDictionary<int, string> greek = new BiDictionary<int, string>(); greek.Add(1, "Alpha"); greek.Add(2, "Beta"); greek.Add(5, "Beta"); ShowEntries(greek, "Alpha"); // Output: Alpha: [1] ShowEntries(greek, "Beta"); // Output: Beta: [2, 5] ShowEntries(greek, "Gamma"); // Output: Gamma: []</code>
ShowEntries
方法演示检索给定值的键。 请注意“Beta”如何正确返回两个关联的键(2 和 5)。 这展示了双向字典处理每个值多个键的能力。
以上是如何有效地检索与 .NET 字典中的单个值关联的多个键?的详细内容。更多信息请关注PHP中文网其他相关文章!