Wie kombiniere ich zwei Wörterbücher ohne Schleife?
Habe ich zwei Wörterbücher von Typ <string,object>
in C#.
Wie kann ich kopieren Sie den gesamten Inhalt eines Dictionary-Objekts zu den anderen, ohne eine Schleife?
InformationsquelleAutor der Frage | 2009-04-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
InformationsquelleAutor der Antwort Gordon Mackie JoanMiro
Können Sie
Concat
:InformationsquelleAutor der Antwort bruno conde
First up, es ist nicht möglich, ohne eine Schleife. Ob dieser Schleife erfolgt eine (Erweiterungs -) Methode ist, spielen keine Rolle, noch Bedarf es einer Schleife.
Werde ich tatsächlich empfehlen, es manuell zu tun. Alle anderen Antworten verlangen, mit beiden Erweiterung Methoden (Concat - ToDictionary und SelectMany - ToDictionary) und somit die Schleife zweimal. Wenn Sie dies tun, optimieren Sie Ihren code, wird es schneller sein, zu tun und mit einer Schleife über Wörterbuch B und fügen Sie den Inhalt zum Wörterbuch A.
Edit: Nach einer weiteren Untersuchung, die Concat-Betrieb würde nur auftreten, während die ToDictionary nennen, aber ich denke immer noch, eine individuelle Erweiterung Methode effizienter wäre.
Wenn Sie möchten, reduzieren Sie Ihre code-Größe), dann nur eine Erweiterung-Methode:
Dann können Sie es durch den Import ('über') der DictionaryExtensions namespace und schreiben:
Ich habe die Methode zu handeln wie die Objekte sind unveränderlich, aber Sie könnte leicht ändern, um nicht wieder einen neuen Wörterbuch und nur merge in dictA.
InformationsquelleAutor der Antwort Richard Szalay
InformationsquelleAutor der Antwort Konstantin Tarkus