Sto cercando una struttura dati simile a un dizionario che restituisca l'insieme di tutti gli elementi correlati a una chiave.Esiste una struttura dati che contiene insiemi di dati in .NET?
Ad esempio, userei così:
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"]
In questo caso, alternateNames1 sarebbe una matrice contenente "Liz" e "Elizabeth", e alternateNames2 sarebbe una matrice contenente "Elizabeth" e "Betty".
Non voglio reinventarlo, ma non ho trovato alcun esempio di tale struttura.
Aggiornamento
Grazie a coloro che hanno scritto di nuovo con suggerimenti. Molte persone hanno suggerito di utilizzare una versione di Dictionary<string, IEnumerable<string>>
. Attualmente sto usando questo approccio, ma in realtà non soddisfa il requisito senza essere terribilmente difficile da mantenere. Ogni valore in ogni elenco deve essere in grado di funzionare come chiave per ogni altro valore aggiunto ad esso in un set.
Così, dato il seguente:
data.Add(new string[] {"Elizabeth", "Liz"}
data.Add(new string[] {"Liz", "Betty"}
alternates = data["Betty"];
mi aspetterei alterna a ora contengono "Elizabeth" e "Liz."
Sembra che potrei dover costruire una struttura del genere per soddisfare le mie esigenze. Tieni comunque le idee in arrivo!
Brian
Duplicato di http://stackoverflow.com/questions/10458/is-there-a-set-data-structure-in-net – Eloff
Non credo che sia un duplicato. Questo non richiede una struttura Set di per sé. –