2013-09-18 4 views
2

Я использую массив массива:многомерный массив объекта с #

object[][] of =new object[lenght2][]; 

Теперь, что я хочу, чтобы вставить новый массив в из [] [], я стараюсь это:

for (int i = 0; i < lenght2; i++) 
    { 
     Act = calcul_resporderbyact(responsable,v); // return array of object 
     of[i] = Act; 
} 

Я хочу знать, как использовать некоторый массив из этого многомерного массива?

+1

, говоря, что такое «Dont работа "означает, что именно вы пытаетесь сделать? – Sayse

+0

Он должен быть 'object [,] of = new object [lenght2,];' – Anirudha

+0

@Anirudh 'object [,] of = new object [lenght2,];' 'не будет компилироваться, вам нужно указать обе длины, такие как' object [,] of = new object [lenght1, lenght2]; ' – wudzik

ответ

4

У вас есть несколько ошибок в коде object[,] of =new object[lenght2][];

[,] не равна [][]

вы можете попробовать это:

object[][] of = new object[length2][]; 
of[i] = Act; //it means you can assign `new[] { new object() };` 

Прочитайте это: Multidimensional Array [][] vs [,]

это говорит что [,] является многомерным массивом и [][] - массив массивов. Поэтому для вашего использования массив массивов действителен.

0

В C# есть jagged arrays и multidimensional arrays. В вашем примере вы, кажется, смешиваете два.

Зубчатые массивы создаются таким образом, и вы должны будете построить каждый «суб-массив» по ​​отдельности:

object[][] obj = new object[10][]; 
obj[0] = new object[10]; 
obj[1] = new object[10]; 
... 

Многомерные массивы с другой стороны:

object[,] obj = new object[10,10]; 
0

Многомерные массивы (в отличие от зубчатых массивов) всегда являются «прямоугольными», что означает, что длина каждой записи в массиве также фиксирована.

Если вы хотите просто список массивов, которые могут иметь различную длину, а затем использовать List<object[]> как в

List<object[]> l = new List<object[]>(); 
l.Add(calcul_resporderbyact(responsable,v)); 

Или вы могли бы использовать jagged array: старт

object[][] l = new object[length2][]; 
l[i] = calcul_resporderbyact(responsable,v); 
Смежные вопросы