我正在寻找C#(2)中的通用双向1到1字典类,即.a BiDictionaryOneToOne<T, S>保证只包含每个值和键中的一个(无论如何最多为RefEquals),并且可以使用键或值进行搜索.有人知道,或者我应该自己实施吗?我不敢相信我是第一个需要这个的人......
在这个问题的答案中有一个BiDictionary ,但它不适用于唯一元素(并且也不实现RemoveByFirst(T t)或RemoveBySecond(S s)).
谢谢!
我有两组对象,在某些情况下,第一组将用作另一组的键,而在其他情况下,第二组将用作第一组的键.此外,两个列表中都不得有重复项.
什么是一个好的数据结构用于此?我应该使用两个字典还是有更聪明的方法?
现在,在你责骂我之前,我知道有一个非常相似的问题:
事实上,我正在寻找一种能够完成同样事情的数据结构。具体来说,我有一个字符串应该映射到另一个字符串,并且其他字符串也应该映射到原始字符串。
例如:
".jpg" -> "image/jpeg"
"image/jpeg" -> ".jpg"
Run Code Online (Sandbox Code Playgroud)
链接的问题建议使用某种哈希图或Dictionary<string,string>来完成此任务。
人们将拥有一种自定义数据类型,该类型将保存两个字典,每个字典都是一种映射方式。这将提供 O(1),但我发现它根本不可扩展。
考虑到我有一个字典,其中包含从 200 个 MIME 类型到关联文件扩展名的所有映射,我需要创建一个类似的字典,内容相同但相反。这很容易出现拼写错误或丢失键,并且有很多重复的代码。
虽然链接的问题旨在Java中的解决方案,但我正在寻找C#中的解决方案。
是否有.NET 数据结构支持对象之间的这种双向映射?
如果没有,我如何在不复制代码的情况下完成此任务(如两个字典解决方案中所示)?