Was ist eine alternative zu Wörterbüchern in C#, können für duplicate keys?

Habe ich eine Methode, die zurückgibt, Gruppen von Technikern, die gearbeitet haben, für bestimmte Projekte, zum Beispiel:

project 1 | John
project 1 | Tim
project 2 | John
project 2 | Dave

Habe ich ursprünglich versucht, um ein Wörterbuch zu erstellen, die in der Regel meine go-to-Kollektion von Schlüssel-Wert-Paare, aber in diesem Fall bin ich nicht in der Lage, es zu benutzen, weil ich kann keine doppelten Schlüssel (das Projekt). Was ist die alternative, die ich verwenden kann?

Mein einziger Gedanke ist die Schaffung eines Dictionary<Project, List<Technicians>> aber gibt es etwas, was viel einfacher?

  • Wörterbuch sichergestellt, dass Sie nicht haben doppelte Schlüssel in der es, was ist das problem?
  • das problem ist, dass ich haben will, einen doppelten Schlüssel, aber immer noch einzigartige Schlüssel-Wert-Paaren (wenn ich einschränken, dass ein Teil).
  • Dictionary<Project, List<Technicians>> gut genug aussieht. Aber wenn Sie nicht wirklich brauchen, um haben Project als Schlüssel (D. H., die Sie nicht brauchen, um alle Techniker von einem Projekt), als Sie versuchen List<Tuple<Project, Technician>>
  • Sie müssen in der Lage sein, effizient zu schauen, eine Gruppe von Ihrem Schlüssel (d.h. Projekt)? Wenn dem so ist, Dictionary ist Ihr Mann. Wenn man nicht aufpasst, dann benutzen Sie etwas anderes.
  • Ich muss alle Techniker für jedes Projekt, aber versuchen zu vermeiden, den zwei-dimensionalen Zugang, wenn ich könnte, aber ich glaube, dass Ihre erste option ist der Weg zu gehen.
  • Wenn Sie nur jemals brauchen, um eine Liste der Techniker für ein Projekt, dann haben Sie eine Lösung. Wenn Sie brauchen, um zu gehen, vom Techniker bis zum Projekt, dann sollten Sie Blick auf dieses stackoverflow.com/questions/255341/...
  • Halten Sie im Verstand, mit dem Sie Ihre gewünschte Lösung, werden Sie am Ende dabei mehrere updates/löschen in Ihrer Sammlung, wenn Sie eine änderung Project. Ihre aktuelle option Dictionary<Project, List<Technicians>> dieses problem nicht hat und IMO, es ist gut genug.
  • möglich, Duplikat der mehrere Werte für Einen Schlüssel-Werte-dictionary in C#?
  • Diese datastructure heißt eine multimap, leider gibt es das nicht in der .NET-Klassenbibliothek.
  • Es ist wohl klar, dass Sie jetzt durch, aber was Sie beschreiben, ist mehr allgemein gedacht, weil mehrere Werte pro Schlüssel. Technisch gleiche, was ich vermute, aber, zumindest für mein Ohr, sprechen über "duplicate keys" klingt nach hinten, mehr wie ein Fehler oder ungültigen Zustand.
  • Ich Stimme zu, und was Sie beschreiben, ist genau, wie ich mich fühlte vor, um diese Frage zu stellen. Ich verstehe jetzt viel besser.

InformationsquelleAutor AdamMc331 | 2014-12-15
Schreibe einen Kommentar