string[][] Tablero = new string[3][3];
Мне нужно иметь расположение массива 3x3 для сохранения информации. Как объявить это на С#?
string[][] Tablero = new string[3][3];
Мне нужно иметь расположение массива 3x3 для сохранения информации. Как объявить это на С#?
string[,] Tablero = new string[3,3];
Вы также можете создать экземпляр в той же строке с синтаксисом инициализатора массива следующим образом:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
Вероятно, вы хотите:
string[,] Tablero = new string[3,3];
Это создаст вам матричный массив, в котором все строки имеют одинаковую длину.
Массив в вашем примере представляет собой так называемый jagged array, т.е. массив массивов, где элементы могут иметь разный размер. Замятый массив должен быть создан по-другому:
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
Вы также можете использовать инициализаторы для заполнения элементов массива данными:
string[,] Tablero = new string[,]
{
{"1.1","1.2", "1.3"},
{"2.1","2.2", "2.3"},
{"3.1", "3.2", "3.3"}
};
И в случае зубчатого массива:
string[][] Tablero = new string[][]
{
new string[] {"1.1","1.2", "1.3"},
new string[] {"2.1","2.2", "2.3"},
new string[] {"3.1", "3.2", "3.3"}
};
Вы только что объявили зубчатый массив. Такие типы массивов могут иметь разные размеры для всех измерений. Например:
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
В вашем случае вам нужен обычный массив. См. Ответы выше. Подробнее о зубчатых массивах
Я предполагаю, что вы ищете это:
string[,] Tablero = new string[3,3];
Синтаксис для зубчатого массива:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
В С# существует 2 типа многомерных массивов, называемых Multidimensional
и Jagged
.
Для многомерного вы можете:
string[,] multi = new string[3, 3];
Для jagged массива вам нужно написать немного больше кода:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
В коротком зазубренном массиве быстрее и имеет интуитивный синтаксис. Для получения дополнительной информации см. fooobar.com/questions/2389/...
попробуйте следующее:
string[,] myArray = new string[3,3];
посмотрите http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
string[,] Tablero = new string[3,3];
Когда вы пытаетесь создать многомерный массив, все, что вам нужно сделать, это добавить запятую к объявлению так:
string[,] tablero = new string[3,3].
string[][]
не является двумерным массивом, это массив массивов (зубчатый массив). Это что-то другое.
Чтобы объявить двумерный массив, используйте следующий синтаксис:
string[,] tablero = new string[3, 3];
Если вам действительно нужен неровный массив, его нужно инициализировать следующим образом:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
Можно также инициализировать массив 3x3 (многомерный) (вы уже объявили его):
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
вы также можете написать код ниже.
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
где "i" - количество строк, а "j" - количество столбцов. используя метод 'typeof (..)', вы можете выбрать тип вашего массива i.e. int, string, double
Существует множество примеров работы с массивами в С# здесь.
Надеюсь, это поможет.
Спасибо, Damian