string[][] Tablero = new string[3][3];
Мені потрібно мати розташування масиву 3x3 для збереження інформації. Як я можу оголосити це в C #?
string[][] Tablero = new string[3][3];
Мені потрібно мати розташування масиву 3x3 для збереження інформації. Як я можу оголосити це в C #?
Відповіді:
string[,] Tablero = new string[3,3];
Ви також можете створити його в одному рядку із синтаксисом ініціалізатора масиву, як показано нижче:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
var tablero = new string[3,3];
якщо ви використовуєте C # 3 або пізнішої версії
new string[,]
new string[,]
...string [,] Tablero = {{"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
.
Для багатовимірних можна:
рядок [,] multi = новий рядок [3, 3];
Для зазубреного масиву вам потрібно написати трохи більше коду:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
Коротше кажучи, зубчастий масив є швидшим і має інтуїтивно зрозумілий синтаксис. Для отримання додаткової інформації дивіться: це питання Stackoverflow
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
або var jagged = new[] { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
спробуйте це :
string[,] myArray = new string[3,3];
заглянути на http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
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"}
};
Коли ви намагаєтеся створити багатовимірний масив, все, що вам потрібно зробити, це додати кому до оголошення так:
string[,] tablero = new string[3,3].
Ви також можете написати код нижче.
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
де 'i' - кількість рядків, а 'j' - кількість стовпців. використовуючи метод 'typeof (..)', ви можете вибрати тип вашого масиву, тобто int, string, double