[]内的索引数量错误; 预计'1'

bla*_*elt 0 c# arrays

我有以下数组:

string[] list1 = new string[2] { "01233", "THisis text" };
string[] list2 = new string[2] { "01233", "THisis text" };
string[] list3 = new string[2] { "01233", "THisis text" };
string[] list4 = new string[2] { "01233", "THisis text" };

string[][] lists = new string[][] { list1, list2, list3, list4 };
Run Code Online (Sandbox Code Playgroud)

我试图使用以下代码查看数组值:

for (int i = 0; i < lists.GetLength(0); i++)
{
     for (int j = 0; j < lists.GetLength(1); j++)
     {
        string s = lists[i, j]; // the problem is here
        Console.WriteLine(s);
     }
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

问题是lists[i, j];带下划线并导致此错误消息:Wrong number of indices inside []; expected '1'

你能告诉我如何解决这个问题吗?

Jep*_*sen 6

lists不是2D数组.它是一个数组数组.因此语法lists[i][j].

for (int i = 0; i < lists.Length; i++)
{
     for (int j = 0; j < lists[i].Length; j++)
     {
        string s = lists[i][j]; // so
        Console.WriteLine(s);
     }
}
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)

请注意如何Length检查数组数组.但是,正如其他人所说,为什么不使用foreachforeach对于数组数组,您需要两个嵌套循环.


另一个选择是实际使用2D数组,a string[,].声明如下:

string[,] lists = { { "01233", "THisis text" },
                    { "01233", "THisis text" },
                    { "01233", "THisis text" },
                    { "01233", "THisis text" }, };
Run Code Online (Sandbox Code Playgroud)

然后你就可以使用两个for回路喜欢你,与lists[i,j]语法,或一个单一的foreach.