string[][] Tablero = new string[3][3];
Muszę mieć układ tablicy 3x3, aby zapisać informacje. Jak zadeklarować to w C #?
string[][] Tablero = new string[3][3];
Muszę mieć układ tablicy 3x3, aby zapisać informacje. Jak zadeklarować to w C #?
Odpowiedzi:
string[,] Tablero = new string[3,3];
Możesz również utworzyć instancję w tym samym wierszu ze składnią inicjatora tablicy w następujący sposób:
string[,] Tablero = new string[3, 3] {{"a","b","c"},
{"d","e","f"},
{"g","h","i"} };
var tablero = new string[3,3];
jeśli używasz C # 3 lub nowszego
new string[,]
)
new string[,]
w ogóle pisać ...string [,] Tablero = {{"a","b","c"}, {"d","e","f"}, {"g","h","i"} }
Prawdopodobnie tego chcesz:
string[,] Tablero = new string[3,3];
Spowoduje to utworzenie tablicy podobnej do macierzy, w której wszystkie wiersze mają tę samą długość.
Tablica w twojej próbce to tak zwana tablica postrzępiona , tj. Tablica tablic, w której elementy mogą mieć różne rozmiary. Tablica postrzępiona musiałaby zostać utworzona w inny sposób:
string[][] Tablero = new string[3][];
for (int i = 0; i < Tablero.GetLength(0); i++)
{
Tablero[i] = new string[3];
}
Możesz także użyć inicjatorów, aby wypełnić elementy tablicy danymi:
string[,] Tablero = new string[,]
{
{"1.1","1.2", "1.3"},
{"2.1","2.2", "2.3"},
{"3.1", "3.2", "3.3"}
};
A w przypadku tablicy postrzępionej:
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"}
};
Właśnie zadeklarowałeś postrzępioną tablicę. Tego rodzaju tablice mogą mieć różne rozmiary dla wszystkich wymiarów. Na przykład:
string[][] jaggedStrings = {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};
W twoim przypadku potrzebujesz zwykłej tablicy. Zobacz odpowiedzi powyżej. Więcej o tablicach postrzępionych
Zakładam, że szukasz tego:
string[,] Tablero = new string[3,3];
Składnia tablicy postrzępionej to:
string[][] Tablero = new string[3][];
for (int ix = 0; ix < 3; ++ix) {
Tablero[ix] = new string[3];
}
Istnieją 2 typy tablic wielowymiarowych w języku C # o nazwach Multidimensional
i Jagged
.
W przypadku wielowymiarowości możesz:
ciąg [,] multi = nowy ciąg [3, 3];
Dla tablicy postrzępionej musisz napisać trochę więcej kodu:
string[][] jagged = new string[3][];
for (int i = 0; i < jagged.Length; i++)
{
jagged[i] = new string[3];
}
Krótko mówiąc, tablica postrzępiona jest zarówno szybsza, jak i ma intuicyjną składnię. Aby uzyskać więcej informacji, zobacz: to pytanie Stackoverflow
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
lub var jagged = new[] { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
Spróbuj tego :
string[,] myArray = new string[3,3];
zajrzyj na http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx
string[,] Tablero = new string[3,3];
string[][]
jest nie dwuwymiarową tablicą jest tablica macierzy (a postrzępione tablica ). To coś innego.
Aby zadeklarować dwuwymiarową tablicę, użyj następującej składni:
string[,] tablero = new string[3, 3];
Jeśli naprawdę chcesz mieć postrzępioną tablicę , musisz ją zainicjować w następujący sposób:
string[][] tablero = new string[][] { new string[3],
new string[3],
new string[3] };
Tablicę 3x3 (wielowymiarową) można również zainicjować (już ją zadeklarowałeś) w następujący sposób:
string[,] Tablero = {
{ "a", "b", "c" },
{ "d", "e", "f" },
{ "g", "h", "i"}
};
Kiedy próbujesz utworzyć tablicę wielowymiarową, wszystko, co musisz zrobić, to dodać przecinek do deklaracji w następujący sposób:
string[,] tablero = new string[3,3].
możesz również napisać poniższy kod.
Array lbl_array = Array.CreateInstance(typeof(string), i, j);
gdzie „i” to liczba wierszy, a „j” to liczba kolumn. używając metody 'typeof (..)' możesz wybrać typ swojej tablicy tj. int, string, double
Istnieje wiele przykładów na pracy z tablicami w C # tutaj .
Mam nadzieję, że to pomoże.
Dzięki, Damianie