Frage

Ich mag einen Arraylist füllen, indem eine Liste von Werten wie die Angabe würde ich einen Integer-Array, aber ich bin nicht sicher, wie ohne wiederholte Anrufe zu tun, zu dem „add“ -Methode.

Zum Beispiel möchte ich {1, 2, 3, "string1", "string2"} zu einer Arraylist zuzuweisen. Ich weiß, für andere Arrays können Sie die Zuordnung machen wie:

int[] IntArray = {1,2,3};

Gibt es eine ähnliche Art und Weise dies für eine Arraylist zu tun? Ich versuchte, die AddRange Methode, aber die geschweifte Klammer Methode nicht implementiert die ICollection-Schnittstelle.

War es hilfreich?

Lösung

Array-Liste Ctor die ICollection akzeptiert, die von der Array-Klasse implementiert wird.

object[] myArray = new object[] {1,2,3,"string1","string2"};
ArrayList myArrayList = new ArrayList(myArray);

Andere Tipps

auf der Version von C # Je Sie verwenden, haben Sie verschiedene Möglichkeiten.

C # 3.0 hat Auflistungsinitialisierer, Detail unter Scott Gu Blog

Hier ist ein Beispiel für Ihr Problem.

ArrayList list = new ArrayList {1,2,3};

Und wenn Sie ein Sammelobjekt initialisiert wird, hat die meisten Konstrukteure, die ähnlichen Komponenten zu AddRange nehmen, obwohl auch hier, wie Sie dies erwähnten, kann keine Option sein.

Ihre Kommentare implizieren Sie Arraylist gewählt, weil es die erste Komponente, die Sie gefunden wurde.

Angenommen, Sie sind einfach eine Liste von ganzen Zahlen suchen, ist dies wahrscheinlich der beste Weg, dies zu tun.

List<int> list = new List<int>{1,2,3};

Und wenn Sie mit C # 2.0 (Was hat Generika, aber nicht Auflistungsinitialisierer).

List<int> list = new List<int>(new int[] {1, 2, 3});

Obwohl die int [] Format nicht in älteren Versionen korrekt sein kann, können Sie die Anzahl der Elemente im Array angeben.

Ich nehme an, Sie sind nicht C # 3.0 verwenden, welche Auflistungsinitialisierer hat. Wenn Sie über die Overhead nicht gestört sind eine temporäre Array zu schaffen, könnte man es so tun, in 1.1 / 2.0:

ArrayList list = new ArrayList(new object[] { 1, 2, 3, "string1", "string2"});

(Art meine eigene Frage zu beantworten, aber ...)

Das nächste, was ich gefunden habe, was ich will, ist die Verwendung der ArrayList.Adapter Methode zu machen:

object[] values = { 1, 2, 3, "string1", "string2" };
ArrayList AL = new ArrayList();
AL = ArrayList.Adapter(values);

//or during intialization
ArrayList AL2 = ArrayList.Adapter(values);

Dies ist ausreichend für das, was ich brauche, aber ich habe gehofft, dass es das temporäre Array in einer Zeile durchgeführt werden könnte, ohne die Schaffung als jemand anderes vorgeschlagen hatte.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top