Wörterbuch f ist temporär und ich möchte seinen Wert in einem anderen Wörterbuch, aber sobald ich Clear() es den Wert in Wörterbuch Zeilen verloren geht, denke ich, es liefert eine Art von Verweis . Irgendeine Idee, wie man das löst?Wörterbuch der Wörterbücher verliert seinen Wert
0
A
Antwort
8
Verschieben Sie die Deklaration f
in Ihre Schleife. Dann werden Sie es nicht jedes Mal leeren müssen und die Referenz bleibt intakt:
Dictionary<int, Dictionary<string, string>> lines = new Dictionary<int, Dictionary<string, string>>();
while ((line = sr.ReadLine()) != null)
{
Dictionary<string, string> f = new Dictionary<string, string>();
lineArr = line.Split(',');
int x = 0;
foreach (string field in lineArr)
{
f.Add(keys[x], field);
x++;
}
lines.Add(lineIndex, f);
lineIndex++;
2
Die Variable f
einen Verweis auf ein Dictionary<string, string>
Objekt enthält. Wenn Sie es einem anderen Wörterbuch hinzufügen, erstellen Sie kein neues Objekt, sondern nur einen weiteren Verweis auf dasselbe Objekt.
Ich würde empfehlen, nur mit f = new Dictionary<string, string>()
als Weg des geringsten Widerstandes hier gehen.
Verwandte Themen
- 1. C++ Zeiger "verliert" seinen Wert
- 2. Parsing Wörterbuch der Wörterbücher
- 3. Erweiterungsmethode für Wörterbuch der Wörterbücher
- 4. Python: Sortieren Wörterbuch der Wörterbücher
- 5. generieren Liste der Wörterbücher, ohne benachbarte Wörterbuch Schlüssel/Wert gleich
- 6. Wie erstelle ich Wörterbuch der Wörterbücher vbscript
- 7. erstellen Pandas Datenrahmen von Wörterbuch der Wörterbücher
- 8. Zugriff Wert innerhalb verschachtelten Wörterbücher
- 9. Warum verliert mein C++ - Objekt seinen VPTr
- 10. Wörterbuch verliert Werte, wenn sie als Parameter
- 11. Boolescher Wert, der seinen Wert ändert
- 12. CMD bat Warum verliert %% a seinen Wert nach der ersten Schleife?
- 13. Ein Wörterbuch in 2 Wörterbücher aufteilen
- 14. statische Variable verliert ihren Wert
- 15. Dubletten zusammenführen Liste der Wörterbücher Element Wert
- 16. mehrere Wörterbücher in einem einzigen Wörterbuch
- 17. Kann Djangos get_absolute_url nicht im Wörterbuch der Wörterbücher verwendet werden?
- 18. Kombinieren Python Wörterbuch Permutationen in Liste der Wörterbücher
- 19. Abnehmender Wert im Wörterbuch
- 20. Plätzchen verliert Wert in ASP.net
- 21. DropDownlist PostBack verliert ausgewählten Wert
- 22. Verliert TFS seinen Link, wenn Sie einen Zweig verschieben?
- 23. Xamarin.Forms EntryCell verliert Wert zum ersten Mal Zelle verliert Fokus
- 24. DataGridComboBoxColumn verliert seinen Inhalt, wenn sich die Auswahl ändert
- 25. Steuerung in Update Wert verliert
- 26. angularjs checkbox behält seinen Wert
- 27. Wörterbücher mit mehr als einem Schlüssel pro Wert in Python
- 28. Python-Lookup-Liste der Werte in der Liste der Wörterbücher
- 29. Liste der Wörterbücher basierend auf Schlüsseln sortieren
- 30. Gegebenes Wörterbuch als Funktionsargument, Notwendigkeit, seinen Schlüssel zu erhalten
'Clear' neigt dazu, das zu tun :) – leppie
Sie haben recht, es setzt einen Verweis auf das Wörterbuch innerhalb des anderen Wörterbuchs, nicht eine Kopie davon. Die Antwort beschreibt, wie mit diesem Verhalten umzugehen ist. – Servy
Gibt es einen besonderen Grund, warum Sie 'Dictionary>' anstelle von 'List >' verwenden? –
covertCoder