0

私のコードはここにあります。しかし、2 つのエラーが発生します。配列初期化子は、変数またはフィールド初期化子でのみ使用できます。代わりに新しい式を使用してみてください。

using System;

public class twoDimArray
{
 public static void Main(string[] args)
{
   String[] city=new String[] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"}  };

    for (int i=0; i<2; i++)
    {for (int j=0; j<3; j++)

   {
      System.Console.Write(city[i][j]+"\t");
  }
      System.Console.Write("\n");
  }
 }
}
4

6 に答える 6

4

宣言を次のように変更します

String[,] city = new String[,] { 
                     { "NewYork", "Muscat", "London" }, 
                     { "Cairo", "Beijing", "CapeTown" } };

上限をハードコーディングする代わりに、これははるかに優れています

for (int i = 0; i < city.GetLength(0); i++)
{
    for (int j = 0; j < city.GetLength(1); j++)
    {
        Console.Write(city[i, j] + "\t");
    }
    Console.WriteLine();
}
于 2013-08-28T06:58:59.980 に答える
2

これを試して

String[,] city=new String[,] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"}  };
于 2013-08-28T06:59:02.230 に答える
1

String[] city=new String[]は 1 次元配列です ....

use String[,] city=new String[,]()

于 2013-08-28T06:58:58.130 に答える
1

まあ、それはあなたが達成しようとしているものに依存します。2 次元配列の場合は、次を使用する必要があります。

String[,] city = new String[,]{ { "NewYork", "Muscat", "London" }, { "Cairo", "Beijing", "CapeTown" } };

たとえば、次のように呼び出します。

System.Console.Write(city[0, 1]);
于 2013-08-28T07:00:36.770 に答える
1

これを試して:

String[] city=new String[] { "NewYork","Muscat","London","Cairo","Beijing","CapeTown"  };

それ以外の:

String[] city=new String[] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"}  };

1 つの配列で他の 2 つの配列を初期化しているため、2 つ目は間違っています。

var city=new List<String[]> {new [] {"NewYork","Muscat","London"} , new []{"Cairo","Beijing","CapeTown"}};

これにより、文字列配列のリストが作成されます。または、このコードは 2 次元配列を作成します。

String[,] city=new String[,] { {"NewYork","Muscat","London"} ,{"Cairo","Beijing","CapeTown"}  };
于 2013-08-28T06:57:22.213 に答える