【发布时间】:2010-02-09 23:20:43
【问题描述】:
我正在寻找一种类似于字典的数据结构,它将所有相关项的集合返回给一个键。
例如,我会这样使用它:
var data = new FancyDataStructure();
data.Add(new string[] {"Elizabeth", "Liz", "Betty"});
data.Add(new string[] {"Bob", "Robert", "Rob"});
string[] alternateNames1 = data["Betty"];
string[] alternateNames2 = data["Liz"]
在本例中,alternateNames1 将是一个包含“Liz”和“Elizabeth”的数组,alternateNames2 将是一个包含“Elizabeth”和“Betty”的数组。
我不想重新发明这个,但我找不到这种结构的任何例子。
更新
感谢那些回信提出建议的人。许多人建议使用某些版本的Dictionary<string, IEnumerable<string>>。目前我正在使用这种方法,但它实际上并没有满足要求,而且维护起来非常困难。每个列表中的每个值都需要能够充当集合中添加到它的每个其他值的键。
因此,鉴于以下情况:
data.Add(new string[] {"Elizabeth", "Liz"}
data.Add(new string[] {"Liz", "Betty"}
alternates = data["Betty"];
我希望替代品现在包含“Elizabeth”和“Liz”。
看起来我可能只需要构建这样一个结构来满足我的需要。让想法不断涌现!
布赖恩
【问题讨论】:
-
我不相信它是重复的。这并不要求 Set 结构本身。
标签: .net data-structures set