Ich bin ein Java-Programmierer, ich habe ein Java ArrayList
vorher benutzt und jetzt möchte ich etwas in C # haben. Einige der Optionen, die ich brauche, sind in diesem Java-Code:
Ich habe C # ArrayList
und LinkedList
verwendet, aber sie haben nicht diese einfachen Optionen, die ich brauche. Gibt es eine andere Option in C #, die den Zugriff auf Objekte mit Indizes unterstützt, Einfügen und Entfernen von bestimmten Indizes?
verwende List <T>
ArrayLists in c # stammen aus dem vorgenerischen Zeitalter. Seit C # 2.0 haben wir generische Sammlungen, List <T>
ist ein Beispiel dafür. Wie der Kommentar zu dieser Antwort sagt, müssen Sie, wenn Sie eine ArrayList verwenden, die Elemente, die Sie in die Arraylist legen, mit einem Rahmen versehen (zu Object
, da dies das Einzige ist, was eine ArrayList als Eingabe benötigt). Wenn Sie danach darauf zugreifen möchten, müssen sie explizit entpackt werden, wie Sie es in Ihrer Frage getan haben. (- & gt; String s = (String) arrayList.get(1);
)
Mit generischen Sammlungen (wie List <T>
) gibt es kein Boxen mehr, da der Compiler weiß, aus welchem Datentyp die Liste besteht. In diesem Fall Strings.
Sie könnten auch eine List<int>
, List<char>
oder List<whatever>
haben, und Sie können die gleiche Indexierungsfunktion für sie verwenden.
Tags und Links java c# collections arraylist linked-list