2017-01-20 6 views
-3

Ich möchte eine Liste des Array-Typs erstellen. Ich mag Wert Array mit erstellen:C# Liste des Array-Typs

array = [a,b]; 

Dann mag ich dieses Array in Liste setzen:

List<Array> list = new List<Array>(); 

ich in der Lage bin, dies zu String-Typ mit Liste zu tun, aber kein Glück mit Array-Typ :

Ich bin von Javascript Hintergrund, nicht viel vertraut mit Konzept der Sammlungen in C#. auch, wie ich Array in C# erstellen können, wie wir in Javascript tun:

var arrTemp = ["a", "b"]; 
+2

Was Sie im Array setzen? Sie benötigen zum Beispiel 'List list;' – Lee

+0

@Lee arbeitet an Code, der die Liste als Rückgabetyp hat. Daran kann ich nichts ändern. –

+0

Ihre js-Anweisung in C# wird wie neue Liste aussehen {"a", "b"} oder neu [] {"a", "b"}, aber diese Antworten sind downvoted :) –

Antwort

-1

würde zum Beispiel ein Array von Strings sein

var arrayOfString = new string[]{"a","b"}; 
// or shorter form: string[] arrayOfString = {"a","b"}; 
// also: var arrayOfString = new[] { "a", "b" } 

Und dann eine Liste-of-ArrayOfString zu schaffen wäre

var listOfArrayOfString = new List<string[]>(); 

Dies funktioniert mit jeder Art, zum Beispiel, wenn Sie eine Klasse hatten MyClass

var arrayOfMyClass = new MyClass[]{ ... }; // ... is you creating instances of MyClass 
var list = new List<MyClass[]>(); 
+0

haha, liebe den Downvote. Was auch immer. – Jamiec

0

Hope this helfen Ihnen

var test = new List<int[]>();

0

Nun, da Ihr Array string[] ist:

var arrTemp = ["a", "b"]; 

Sie die erforderliche list als List<string[]> erklären müssen:

// list of string arrays 
List<string[]> list = new List<string[]>() { 
    new string[] {"a", "b"} 
}; 

Im Fall, dass Sie in der Lage sein jede Array in die list erklärt es so locker wie möglich zu setzen (List<object[]>):

// list of abitrary arrays 
List<object[]> list = new List<object[]>() { 
    new string[] {"a", "b"}, 
    new double[] {123.45, 789.12, 333.55}, 
    new object[] {'a', "bcd", 1, 244.95, true}, 
}; 
0

Sie können tatsächlich eine Liste von Arrays erstellen:

var listOfArrays = new List<Array>(); 

Das Problem dabei ist, dass es schwierig ist, die Arrays selbst zu verwenden, da der Typ Array Array-Syntax nicht unterstützt. (Zum Beispiel können Sie listOfArrays[0][0] nicht tun) Stattdessen müssen Sie die GetValue Methode verwenden Ihre Retrieval zu tun:

var obj = listOfArrays[0].GetValue(0); 

Das hat aber ein anderes Problem. Die Methode GetValue gibt object zurück. Sie können zwar immer den gewünschten Typ verwenden, verlieren jedoch Ihre Typsicherheit bei der Wahl dieses Ansatzes.

Alternativ könnten Sie speichern nur object[] Arrays:

var listOfArrays = new List<object[]>(); 
var obj = listOfArrays[0][0]; 

Aber während diese die Frage der Array-Notation löst, haben Sie immer die Art Sicherheit verlieren.

Stattdessen, wenn überhaupt möglich ist, würde ich empfehlen, eine bestimmte Art zu finden, dann haben nur Arrays dieses Typs:

var listOfArrays = new List<string[]>(); 
string s = listOfArrays[0][0];