Dynamische Größenänderung von Arrays: Array.Resize() vs. Listen
In der Programmierung sind Arrays Datenstrukturen fester Größe, also ihrer Größe kann nach der Erklärung nicht mehr geändert werden. Es gibt jedoch Situationen, in denen die Array-Größe vorher unbekannt ist und dynamisch angepasst werden muss. Dies wirft die Frage auf: Ist es möglich, die Größe eines Arrays in C# zu ändern?
Die Antwort ist sowohl „Ja“ als auch „Nein“. Während C# die Methode Array.Resize() bereitstellt, ist es wichtig zu beachten, dass Array.Resize() technisch gesehen nicht die Größe des ursprünglichen Arrays ändert. Stattdessen wird ein neues Array mit der angegebenen Größe erstellt und die Elemente aus dem alten Array in das neue kopiert. Die ursprüngliche Array-Referenz wird dann durch die Referenz auf das neue Array ersetzt.
Beispiel:
int[] array1 = new int[10]; int[] array2 = array1; Array.Resize<int>(ref array1, 20); // Now: // array1.Length is 20 // array2.Length is 10 // Two different arrays.
In diesem Beispiel wird nach dem Aufruf von Array.Resize() Array1 verweist auf ein neues Array mit einer Länge von 20, während Array2 immer noch auf das ursprüngliche Array mit einer Länge von 10 verweist. Dies bedeutet, dass die beiden Arrays jetzt unabhängig sind und alle an einem Array vorgenommenen Änderungen dies tun keinen Einfluss auf die anderen.
Alternative: Verwendung von Listen
Wenn häufig eine dynamische Größenänderung erforderlich ist, wird empfohlen, Listen anstelle von Arrays zu verwenden. Listen sind dynamische Datenstrukturen, die ihre Größe bei Bedarf automatisch anpassen können. Im Gegensatz zu Arrays können Listen einfach durch Hinzufügen oder Entfernen von Elementen erweitert oder verkleinert werden.
Beispiel:
List<int> list = new List<int>(); list.Add(1); list.Add(2); // Get the current size of the list int size = list.Count;
Die dynamische Größenänderung mit Listen ist viel bequemer und effizienter als mit Array.Resize(). Allerdings haben Arrays immer noch ihre eigenen Vorteile, wie z. B. eine bessere Leistung für bestimmte Vorgänge und die Möglichkeit, über Indizes direkt auf Elemente zuzugreifen. Die Wahl zwischen Arrays und Listen hängt von den spezifischen Anforderungen der Anwendung ab.
Das obige ist der detaillierte Inhalt vonSollte ich Array.Resize() oder Listen für die dynamische Größenänderung von Arrays in C# verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!