2010-04-30 9 views
7
  • Ich muss wissen, wie Array von Arrays in C# zu initialisieren ..
  • Ich weiß, dass es mehrdimensionales Array existieren, aber ich glaube, ich brauche nicht, dass in meinem Fall! Ich habe diesen Code versucht .. konnte aber nicht mit Initialisierungsliste initialisieren ..Array von Arrays in C#

    double [] [] a = neu double [2] []; // = {{1,2}, {3 , 4}};

Danke

PS: Wenn Sie sich fragen, warum ich es verwenden: Ich brauche Datenstruktur, wenn ich obj nennen [0] es ein Array zurückgibt .. Ich weiß, es ist seltsam ..

Dank

Antwort

5

Afaik, die einfachste und Tastendruck effektiv ist dies eine gezackte Array zu initialisieren ist:

double[][] x = new []{new[]{1d, 2d}, new[]{3d, 4.3d}}; 

Edit:

eigentlich diese Werke auch:

double[][] x = {new[]{1d, 2d}, new[]{3d, 4.3d}}; 
+0

Wäre nicht der erste' double [] [] x = new [] [] {'? –

+1

So viele unnötige Tastenanschläge ... Schreiben Sie es einfach als "double [] [] x = {new [] {1d, 2}, neu [] {3,4.3}};";) – Guffa

+1

@Robert Harvey, eigentlich nett von seltsam, aber nein. –

4

Dies sollte funktionieren:

double[][] a = new double[][] 
{ 
    new double[] {1.0d, 2.0d}, 
    new double[] {3.0d, 4.0d} 
}; 
+0

Scheint wie Sie eine "{" irgendwo im Beispiel fehlt. – cyberzed

+0

fehlt Ihnen ein ** {** nach dem [2] [] – ntziolis

+0

@ntziolis: Es steht in der folgenden Zeile. –

3

Wie Sie ein Array von Arrays haben, müssen Sie die arra erstellen y Objekte im Inneren auch:

double[][] a = new double[][] { 
    new double[] { 1, 2 }, 
    new double[] { 3, 4 } 
}; 
2
double[][] a = new double[][] { 
    new double[] {1.0, 1.0}, 
    new double[] {1.0, 1.0} 
}; 
0

Ich weiß nicht, ob ich recht habe, aber ich habe in VB.net so genannte Structures verwendet und mich gefragt, wie dieses Konzept in C# gesehen wird. Es ist wichtig, auf diese Frage auf diese Weise:

' The declaration part 
Public Structure driveInfo 
    Public type As String 
    Public size As Long 
End Structure 
Public Structure systemInfo 
    Public cPU As String 
    Public memory As Long 
    Public diskDrives() As driveInfo 
    Public purchaseDate As Date 
End Structure 

' this is the implementation part 
Dim allSystems(100) As systemInfo 
ReDim allSystems(1).diskDrives(3) 
allSystems(1).diskDrives(0).type = "Floppy" 

Sehen Sie, wie elegant das alles ist, und weit besser zugänglich als gezackter Arrays. Wie kann all dies in C# (Strukturen vielleicht?) Getan werden