2010-04-30 4 views
7
  • Je dois savoir comment initialiser tableau de tableaux en C# ..
  • Je sais qu'il existe tableau multidimensionnel, mais je pense que je ne ai pas besoin que dans mon cas! J'ai essayé ce code .. mais ne pouvait pas savoir comment initialiser avec la liste des initialiseur ..Tableau de tableaux en C#

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

Merci

PS: Si vous vous demandez pourquoi je l'utilise: je besoin d'une structure de données que lorsque j'appelle obj [0] il retourne un tableau .. Je sais qu'il est étrange ..

Merci

Répondre

5

AFAIK, la façon la plus simple et combinaison de touches est ce pour initialiser un tableau en dents de scie est:

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

Edit:

En fait, cette œuvres aussi:

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

Le premier ne serait-il pas' double [] [] x = new [] [] {'? –

+1

Tant de frappes inutiles ... Il suffit de l'écrire comme double [] [] x = {nouveau [] {1d, 2}, nouveau [] {3,4,3}}; ';) – Guffa

+1

@ Robert Harvey, en fait aimable d'étrange mais non. –

4

Cela devrait fonctionner:

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

On dirait qu'il vous manque un "{" quelque part dans l'exemple. – cyberzed

+0

il vous manque un ** {** après le [2] [] – ntziolis

+0

@ntziolis: C'est sur la ligne suivante. –

3

Comme vous avez un tableau de tableaux, vous devez créer l'ARRA objets y à l'intérieur il aussi:

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

Je ne sais pas si j'ai raison à propos de ça, mais j'ai utilisé des Structures dans VB.net, et je me demande comment ce concept est vu en C#. Il convient à cette question ainsi:

' 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" 

Voyez comment tout cela est élégant, et beaucoup mieux que les tableaux d'accès déchiquetés. Comment tout cela peut-il être fait en C# (structures peut-être?)