Jak mogę zadeklarować dwuwymiarową tablicę łańcuchów?

string[][] Tablero = new string[3][3];

Muszę mieć układ tablicy 3x3, aby zapisać informacje. Jak to zadeklarować w C#?

Author: nawfal, 2010-09-28

12 answers

string[,] Tablero = new string[3,3];

Możesz również utworzyć instancję w tej samej linii za pomocą składni inicjalizacji tablicy w następujący sposób:

string[,] Tablero = new string[3, 3] {{"a","b","c"},
                                      {"d","e","f"}, 
                                      {"g","h","i"} };
 96
Author: explorer,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-23 17:03:43

Pewnie tego chcesz:

string[,] Tablero = new string[3,3];

Spowoduje to utworzenie macierzy podobnej do macierzy, gdzie wszystkie wiersze mają tę samą długość.

Tablica w próbce jest tak zwaną postrzępioną tablicą , tj. tablicą tablic, w której elementy mogą być różnej wielkości. Postrzępiona tablica musiałaby być 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żna również użyć inicjalizatorów do wypełnienia elementów tablicy danymi:

string[,] Tablero = new string[,]
{
    {"1.1","1.2", "1.3"},
    {"2.1","2.2", "2.3"},
    {"3.1", "3.2", "3.3"}
};

Oraz 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"}
};
 46
Author: Dirk Vollmar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 15:16:32

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 regularnej tablicy. Zobacz odpowiedzi powyżej. więcej o postrzępionych tablicach

 11
Author: Bashir Magomedov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-13 14:36:33

Zakładam, że tego szukasz:

        string[,] Tablero = new string[3,3];

Składnia tablicy postrzępionej jest następująca:

        string[][] Tablero = new string[3][];
        for (int ix = 0; ix < 3; ++ix) {
            Tablero[ix] = new string[3];
        }
 9
Author: Hans Passant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 15:08:46

W C# istnieją 2 typy tablic wielowymiarowych, nazywane Multidimensional i Jagged.

Dla wielowymiarowości można przez:

string[,] multi = new string[3, 3];

Dla jagged array musisz napisać trochę więcej kodu:

string[][] jagged = new string[3][];
            for (int i = 0; i < jagged.Length; i++)
            {
                jagged[i] = new string[3];
            }

W skrócie postrzępiona tablica jest zarówno szybsza, jak i ma intuicyjną składnię. Aby uzyskać więcej informacji zobacz: to pytanie Stoskoverflow

 8
Author: Lev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:41

Spróbuj tego:

string[,] myArray = new string[3,3];

Spójrz na http://msdn.microsoft.com/en-us/library/2yd9wwz4.aspx

 7
Author: anishMarokey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 15:14:17
string[,] Tablero = new string[3,3];
 4
Author: Chris Almond,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 15:08:47

string[][] jest nie dwuwymiarową tablicą, jest tablicą tablic (a jagged array). To coś innego.

Aby zadeklarować tablicę dwuwymiarową, użyj składni:

string[,] tablero = new string[3, 3];

Jeśli naprawdę chcesz jagged array, musisz ją zainicjować w następujący sposób:

string[][] tablero = new string[][] { new string[3], 
                                      new string[3], 
                                      new string[3] };
 4
Author: Heinzi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 15:11:46

Kiedy próbujesz utworzyć wielowymiarową tablicę, wystarczy dodać przecinek do deklaracji w następujący sposób:

string[,] tablero = new string[3,3].
 4
Author: hav2play21,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-13 14:01:59

Tablica 3x3 (wielowymiarowa) może być również zainicjalizowana (już ją zadeklarowałeś) w następujący sposób:

string[,] Tablero =  {
                        { "a", "b", "c" },
                        { "d", "e", "f" }, 
                        { "g", "h", "i"} 
                     };
 3
Author: nawfal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-13 13:51:28

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 " typeof(..) 'metoda możesz wybrać typ tablicy tj. int, string, double

 2
Author: Stavros Afxentis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-23 17:03:58

Istnieje wiele przykładów pracy z tablicami w C # tutaj.

Mam nadzieję, że to pomoże.

Dzięki, Damian

 1
Author: Damian Schenkelman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-28 15:09:21