我有以下数组:
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'
你能告诉我如何解决这个问题吗?
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检查数组数组.但是,正如其他人所说,为什么不使用foreach?foreach对于数组数组,您需要两个嵌套循环.
另一个选择是实际使用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.