Problem:
Das Hinzufügen mehrerer Elemente zu einer Liste führt dazu, dass alle Listenelemente mit dem Wert des zuletzt hinzugefügten Elements überschrieben werden. Dies geschieht unabhängig von den Anfangswerten der Elemente.
Ursachen:
Auflösung:
Die Lösung besteht darin, für jede Iteration eine neue Objektinstanz zu erstellen:
<code class="language-csharp">foreach (string t in tagList) { Tag _tag = new Tag(); // New Tag object for each iteration _tag.tagName = t; tags.Add(_tag); }</code>
Alternative: Nutzung von Strukturen
Durch den Wechsel von einer Klasse zu einer Struktur wird das Überschreibproblem beseitigt, weil:
Add
-Vorgang erstellt eine neue Strukturinstanz und behält eindeutige Werte bei.Das obige ist der detaillierte Inhalt vonWarum werden meine Listenelemente beim Hinzufügen mehrerer Objekte überschrieben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!