web-dev-qa-db-ja.com

2次元の文字列配列を宣言するにはどうすればよいですか?

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

情報を保存するには、3x3の配列が必要です。 C#でこれを宣言するにはどうすればよいですか?

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

次のように配列初期化構文を使用して、同じ行でインスタンス化することもできます。

string[,] Tablero = new string[3, 3] {{"a","b","c"},
                                      {"d","e","f"}, 
                                      {"g","h","i"} };
105
explorer

おそらくこれが必要です:

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

これにより、すべての行が同じ長さの行列のような配列が作成されます。

サンプルの配列は、いわゆる jagged array 、つまり要素のサイズが異なる配列の配列です。ギザギザの配列は別の方法で作成する必要があります。

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"}
};
51
Dirk Vollmar

ギザギザの配列を宣言しました。そのような種類の配列は、すべての次元で異なるサイズを持つことができます。例えば:

string[][] jaggedStrings =  {
new string[] {"x","y","z"},
new string[] {"x","y"},
new string[] {"x"}
};

あなたの場合、通常の配列が必要です。上記の回答をご覧ください。 ギザギザの配列の詳細

13

あなたはこれを探していると思います:

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

ギザギザの配列の構文は次のとおりです。

        string[][] Tablero = new string[3][];
        for (int ix = 0; ix < 3; ++ix) {
            Tablero[ix] = new string[3];
        }
10
Hans Passant

C#には、MultidimensionalJaggedと呼ばれる2種類の多次元配列があります。

多次元の場合:

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の質問

9
Lev

これを試して :

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

http://msdn.Microsoft.com/en-us/library/2yd9wwz4.aspx をご覧ください

8
anishMarokey
string[,] Tablero = new string[3,3];
5
Chris Almond

多次元配列を作成しようとしているときは、次のように宣言にカンマを追加するだけです。

string[,] tablero = new string[3,3].
5
hav2play21

3x3(多次元)配列は、次のように初期化することもできます(既に宣言済みです)。

string[,] Tablero =  {
                        { "a", "b", "c" },
                        { "d", "e", "f" }, 
                        { "g", "h", "i"} 
                     };
5
nawfal

string[][]not2次元配列であり、配列の配列です(ajagged array)。それは違うものです。

2次元配列を宣言するには、次の構文を使用します。

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

jagged array が本当に必要な場合は、次のように初期化する必要があります。

string[][] tablero = new string[][] { new string[3], 
                                      new string[3], 
                                      new string[3] };
5
Heinzi

以下のコードを書くこともできます。

Array lbl_array = Array.CreateInstance(typeof(string), i, j);

ここで、「i」は行数、「j」は列数です。 「typeof(..)」メソッドを使用して、配列のタイプ、つまりint、string、doubleを選択できます

3

C# here で配列を操作する例はたくさんあります。

これがお役に立てば幸いです。

ありがとう、ダミアン

1