Как я могу объявить двумерный строковый массив?
string[][] Tablero = new string[3][3];
Мне нужно иметь расположение массива 3x3 для сохранения информации. Как я могу объявить это в C#?
12 ответов:
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];
это создаст вам матрицу, как массив, где все строки имеют одинаковую длину.
массив в вашем образце является так называемым многомерном массиве, т. е. массив массивов, где элементы могут быть разного размера. Зубчатый массив должен быть создан по-другому:
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]; }
в C# есть 2 типа многомерных массивов, называемых
Multidimensional
иJagged
.для многомерных вы можете:
string[,] multi = new string[3, 3];для зубчатого массива вы должны написать немного больше кода:
string[][] jagged = new string[3][]; for (int i = 0; i < jagged.Length; i++) { jagged[i] = new string[3]; }
короче зубчатый массив и быстрее, и имеет интуитивно понятный синтаксис. Для получения дополнительной информации см.: этот вопрос Stackoverflow
попробуйте это :
string[,] myArray = new string[3,3];
посмотрите на http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
string[][]
и не двумерный массив, это массив массивов (a многомерном массиве). Это что-то другое.чтобы объявить двумерный массив, используйте следующий синтаксис:
string[,] tablero = new string[3, 3];
Если вы действительно хотите многомерном массиве, вам нужно инициализировать его следующим образом:
string[][] tablero = new string[][] { new string[3], new string[3], new string[3] };
когда вы пытаетесь создать многомерный массив все, что вам нужно сделать, это добавить запятую в декларации следующим образом:
string[,] tablero = new string[3,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(..) 'метод вы можете выбрать тип вашего массива т. е. int, string, double
есть много примеров по работе с массивами в C# здесь.
Я надеюсь, что это помогает.
спасибо, Дамиан