Массив массивов в C # - PullRequest
7 голосов
/ 01 мая 2010
  • Мне нужно знать, как инициализировать массив массивов в C # ..
  • Я знаю, что существует многомерный массив, но я думаю, что мне это не нужно в моем случае! Я пытался этот код .. но не мог знать, как инициализировать с помощью списка инициализатора ..

    double [] [] a = новый double [2] []; // = {{1,2}, {3,4}};

Спасибо

PS: Если вам интересно, почему я это использую: мне нужна структура данных, чтобы при вызове obj [0] он возвращал массив ... Я знаю, что это странно ..

Спасибо

Ответы [ 5 ]

5 голосов
/ 01 мая 2010

Афаик, самый простой и эффективный способ нажатия клавиш - это инициализация зубчатого массива:

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

Edit:

На самом деле это тоже работает:

double[][] x = {new[]{1d, 2d}, new[]{3d, 4.3d}};
4 голосов
/ 01 мая 2010

Это должно работать:

double[][] a = new double[][] 
{ 
    new double[] {1.0d, 2.0d},
    new double[] {3.0d, 4.0d}
};
3 голосов
/ 01 мая 2010

Поскольку у вас есть массив массивов, вы должны также создать в нем объекты массива:

double[][] a = new double[][] {
  new double[] { 1, 2 },
  new double[] { 3, 4 }
};
2 голосов
/ 01 мая 2010
double[][] a = new double[][] {
     new double[] {1.0, 1.0}, 
     new double[] {1.0, 1.0}
};
0 голосов
/ 01 мая 2010

Я не знаю, прав ли я по этому поводу, но я использовал так называемые структуры в VB.net и удивляюсь, как эта концепция рассматривается в C #. Это относится к этому вопросу следующим образом:

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

Посмотрите, как все это элегантно, и к нему гораздо удобнее обращаться, чем к зазубренным массивам. Как все это может быть сделано в C # (возможно, Structs?)

...