Einige Wissenspunkte werden möglicherweise ständig verwendet, aber in der tatsächlichen Entwicklung kennen wir sie möglicherweise nur und wissen nicht warum, sodass regelmäßige Zusammenfassungen eine große Hilfe für unsere Verbesserung und unseren Fortschritt sein werden. Der folgende Artikel stellt Ihnen die Unterschiede zwischen Arrays, Listen und ArrayLists vor. Ich hoffe, er wird Ihnen hilfreich sein.
Der Unterschied zwischen Array, Liste und ArrayList
Arrays werden kontinuierlich im Speicher gespeichert Daher ist die Indizierungsgeschwindigkeit sehr hoch und das Zuweisen und Ändern von Elementen ist ebenfalls sehr einfach, z. B.:
string[] s=new string[3]; //赋值 s[0]="a"; s[1]="b"; s[2]="c"; //修改 s[1]="b1";
Arrays weisen jedoch auch einige Mängel auf. Beispielsweise ist es sehr mühsam, Daten zwischen zwei Daten in einem Array einzufügen. Wenn wir ein Array deklarieren, müssen wir auch die Länge des Arrays angeben. Wenn die Länge des Arrays zu lang ist, führt dies zu einer Speicherverschwendung. Wenn die Länge des Arrays zu kurz ist, führt dies zu einem Datenüberlauffehler. Dies wird sehr problematisch, wenn wir die Länge des Arrays bei der Deklaration nicht kennen. Um diese Mängel zu beheben, stellte C# zunächst das ArrayList-Objekt bereit.
ArrayList ist eine spezielle Klasse, die von .Net Framework zum Speichern und Abrufen von Daten bereitgestellt wird. Sie ist Teil des Namespace System.Collections. Seine Größe vergrößert und verkleinert sich dynamisch entsprechend den darin gespeicherten Daten. Daher müssen wir bei der Deklaration des ArrayList-Objekts seine Länge nicht angeben. ArrayList erbt die IList-Schnittstelle, sodass es problemlos Daten hinzufügen, einfügen und entfernen kann. Aus dem obigen Beispiel geht hervor, dass ArrayList alle Mängel von Arrays löst. Es ist also perfekt Wird die Liste nach C# 2.0 erneut angezeigt?
Das Konzept des Boxens und Unboxings: Einfach ausgedrückt: Boxen: Packen von Werttypdaten in eine Instanz eines Referenztyps, z. B. Zuweisen des Werts 123 des Typs int zum Objektobjekt o ArrayList list = new ArrayList();
//新增数据
list.Add("abc"); list.Add(123);
//修改数据
list[2] = 345;
//移除数据
list.RemoveAt(0);
//插入数据
list.Insert(0, "hello world");
int i=123; object o=(object)i;
Der Prozess des Boxens und das Auspacken ist sehr leistungsintensiv.
Gerade weil ArrayList die Nachteile unsicherer Typen sowie Boxing und Unboxing aufweist, tauchte das Konzept der Generika nach C# 2.0 auf. Die List-Klasse ist das generische Äquivalent der ArrayList-Klasse. Der größte Teil seiner Verwendung ähnelt ArrayList, da die List-Klasse auch die IList-Schnittstelle erbt. Der kritischste Unterschied besteht darin, dass wir beim Deklarieren der List-Sammlung auch den Objekttyp der Daten in der List-Sammlung deklarieren müssen. Zum Beispiel:
object o=123; int i=(int)o;
Gleichzeitig kann List nicht erstellt werden, Sie können jedoch wie oben einen Verweis auf List erstellen und ListArray erstellen.
List<int> list = new List<int>(); //新增数据 list.Add(123); //修改数据 list[0] = 345; //移除数据 list.RemoveAt(0);
List list = new ArrayList(); Dieser Satz erstellt ein ArrayList-Objekt und führt es auf die Liste zurück. Zu diesem Zeitpunkt handelt es sich um ein List-Objekt. Einige ArrayList-Objekte verfügen über Eigenschaften und Methoden, die List nicht hat, sodass sie nicht mehr verwendet werden können. ArrayList list=new ArrayList(); erstellt ein Objekt und behält alle Eigenschaften von ArrayList bei.
Vorteile von List-Generika:
Indem Sie die spezifischen Typen angeben können, mit denen eine generische Klasse oder Methode arbeitet, verlagert die Generika-Funktion die Aufgabe der Typsicherheit von Ihnen auf die Compiler. Es ist nicht erforderlich, Code zu schreiben, um zu erkennen, ob der Datentyp korrekt ist, da der richtige Datentyp zur Kompilierungszeit erzwungen wird. Reduziert die Notwendigkeit von Typumwandlungen und die Möglichkeit von Laufzeitfehlern. Generics bieten Typsicherheit ohne den Aufwand mehrerer Implementierungen.
Dieser Artikel stammt aus der Rubrik
C#.Net-TutorialDas obige ist der detaillierte Inhalt vonErfahren Sie mehr über die Unterschiede zwischen Arrays, Listen und ArrayLists. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!