是否存在一个包含.NET数据集的数据结构?

Bri*_*nga 8 .net set data-structures

我正在寻找类似于字典的数据结构,该字典将所有相关项的集合返回给密钥.

例如,我会像这样使用它:

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"]
Run Code Online (Sandbox Code Playgroud)

在这个例子中,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"];
Run Code Online (Sandbox Code Playgroud)

我希望替补人员现在包含"伊丽莎白"和"利兹".

看起来我可能只需构建这样的结构以满足我的需求.保持想法即将到来!

布赖恩

Dol*_*hin 1

你的问题听起来确实是一个绘图问题。将名称视为节点,将集合中的成员身份视为边。从这个角度来看,您需要一个能够很好地处理稀疏图的数据结构,例如邻接表。当然,这与您已经使用 a 所做的类似,Dictionary<string, IEnumerable<string>>但以这种方式思考可能会引导您找到一些有用的实现和算法。