2011-12-15 1 views
2

Я учу .NET и я видел слово «Jagged Arrays». Так что я хочу знать, что для этого идеальное значение.Что такое Jagged Arrays в .NET?

Я просто новичок в технологии .NET, поэтому, пожалуйста, предоставьте конкретный ответ на этот вопрос. Если возможно, поясните на примере.

имеет хороший день

ответ

5

Может быть, это ответьте на помощь .....

Jagged Array - это массив, каждый из которых является массивом. Каждый из его элементов может иметь разный размер или размер.

Предположим, что в коде ниже мы объявляем массив, имеющий 3 элемента, и каждый из его элементов является сам массив, и они имеют разный размер ..

Например:

int[][] x = new int[3][]; 
x[0] = new int[1]; 
x[1] = new int[10]; 
x[2] = new int[15]; 
1

Посмотрите на майкрософт библиотеки MSDN, она имеет огромное количество маленьких примеров и объясняет их совершенно.

http://msdn.microsoft.com/en-us/library/2s05feca.aspx

«Ломаная массив представляет собой массив, элементами которого являются массивы. Элементы зубчатым массива могут быть различных размеров и размеров.»

1

Яйцевый массив - массив массивов (в частности, одномерный массив одномерных массивов).

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

+0

Почему downvote? Если вы не объясните, что вы считаете неправильным, оно не может улучшить ответ. – Guffa

2

Это массив массивов, где суб-массивы могут иметь разные размеры. Например:

string[][] jagged = new string[][] { 
    new string[] { "one" }, 
    new string[] { "two", "elements" }, 
    new string[] { "this", "has", "three" }, 
}; 

Сравните это с прямоугольных массива, который не имеет «подмассивов», но это просто настоящий двумерный один массив:

string[,] rectangular = new string[,] { 
    // These must all have the same length 
    { "a", "b" }, 
    { "c", "d" }, 
    { "0", "1" } 
}; 
+0

Чтобы добавить это, я хотел бы указать, что в C/C++ это эквивалентно указанию на указатель: 'int ** foo = new int * [n]'. Затем инициализируйте все n массивов, чтобы указать на 'new int [m_i]', где m_i - размер подмассива внутри foo [i]. –