Heim >Backend-Entwicklung >C++ >Wie kann ich Elemente innerhalb einer Liste von Strukturen in C# ändern?
Ändern von Elementen in einer Liste von Strukturen
Wenn Sie mit einer Liste von Strukturen arbeiten, führt der Versuch, ein einzelnes Element mithilfe einer einfachen Zuweisung zu ändern, dazu in der Fehlermeldung „Der Rückgabewert von System.Collections.Generic.List.this[int] kann nicht geändert werden, da es sich nicht um eine Variable handelt.“ Dies liegt an der Werttypsemantik von Strukturen.
Grundlegendes zur Werttypsemantik
In C# enthalten Strukturvariablen Kopien von Daten, d. h. alle an einer Kopie vorgenommenen Änderungen haben keinen Einfluss auf das Original. Dieses Verhalten unterscheidet sich von Klassen, bei denen Objektverweise auf die tatsächlichen Daten verweisen.
Auf Strukturelemente zugreifen und diese ändern
Im bereitgestellten Beispiel beim Zuweisen von MyList[1]. Wenn Sie den Namen „bob“ verwenden, wird eine neue Instanz von MyStruct erstellt und der Variablen zugewiesen. Diese neue Instanz verweist jedoch nicht auf das ursprüngliche Element in der Liste. Daher bleibt das ursprüngliche Element unverändert.
Optionen zum Ändern von Strukturelementen in einer Liste
Um die tatsächlichen Elemente in einer Liste von Strukturen zu ändern, ziehen Sie die folgenden Ansätze in Betracht:
Auswahl zwischen Strukturen und Klassen
Die Entscheidung, ob eine Struktur oder eine Klasse verwendet werden soll sollte nicht in erster Linie auf der Notwendigkeit basieren, sie in Sammlungen zu speichern. Berücksichtigen Sie stattdessen die Semantik und Anforderungen der dargestellten Daten. Strukturen werden im Allgemeinen für Wertobjekte bevorzugt, die einen einzelnen, unveränderlichen Wert darstellen. Klassen hingegen zeichnen sich durch die Darstellung von Objekten mit veränderlichem Zustand und möglicherweise komplexen Beziehungen aus.
Das obige ist der detaillierte Inhalt vonWie kann ich Elemente innerhalb einer Liste von Strukturen in C# ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!