string[][] Tablero = new string[3][3];
Muszę mieć układ tablicy 3x3, aby zapisać informacje. Jak zadeklarować to w C #?
c#
arrays
multidimensional-array
jagged-arrays
array-initialization
Olivier Rogier
źródło
źródło
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"} };
źródło
var tablero = new string[3,3];
jeśli używasz C # 3 lub nowszegonew 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"} };
źródło
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
źródło
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]; }
źródło
Istnieją 2 typy tablic wielowymiarowych w języku C # o nazwach
Multidimensional
iJagged
.W przypadku wielowymiarowości możesz:
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
źródło
string[][] jagged = { new[] { "a", "b", "c" }, new[] { "d", "e", "f" }, new[] { "g", "h", "i" } };
lubvar 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
źródło
string[,] Tablero = new string[3,3];
źródło
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] };
źródło
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"} };
źródło
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].
źródło
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
źródło
Istnieje wiele przykładów na pracy z tablicami w C # tutaj .
Mam nadzieję, że to pomoże.
Dzięki, Damianie
źródło