C # -Äquivalent für Java-Arraylist Unterstützung erhalten, setzen und entfernen bestimmte Index

8

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:

%Vor%

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?

    
sajad 09.09.2012, 20:21
quelle

2 Antworten

14

verwende List <T>

%Vor%

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.

    
Thousand 09.09.2012, 20:24
quelle
1

Verwenden Sie List<T> ...........................................

welches Add Remove , RemoveAt Indexer wie list[i] etc.

hat     
L.B 09.09.2012 20:23
quelle