这是一个C#代码。
输出以下文字:
tab.Length = 6
tab.Rank = 2
Length of dim 0 of tab : 0
Length of dim 1 of tab : 1
我期待以下文字:
tab.Length = 6
tab.Rank = 2
Length of dim 0 of tab : 2
Length of dim 1 of tab : 3
为什么不呢?感谢。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TableTest
{
class Program
{
static void Main(string[] args)
{
int[,] tab = new int[2, 3];
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 3; j++)
{
tab[i, j] = 2 * i + j;
}
}
Console.WriteLine("tab.Length = {0}", tab.Length);
Console.WriteLine("tab.Rank = {0}", tab.Rank);
for (int i = 0; i < tab.Rank; i++)
{
Console.WriteLine("Length of dim {0} of tab : {0} ", i, tab.GetLength(i));
}
}
}
}
答案 0 :(得分:11)
狂野猜测:您的上一个格式字符串错误:
Console.WriteLine("Length of dim {0} of tab: {0} ", i, tab.GetLength(i));
您已经两次使用{0}
,因此您在两个占位符中都输出了i
的值。
请改用:
Console.WriteLine("Length of dim {0} of tab: {1} ", i, tab.GetLength(i));
答案 1 :(得分:1)
您的格式字符串错误。
将"Length of dim {0} of tab : {0} "
替换为"Length of dim {0} of tab : {1} "
。
你的代码实际上是在放i而不是tab.GetLenght(i)
答案 2 :(得分:1)
您只需要访问传递给Console.WriteLine的第二个参数吗?试试这个:
Console.WriteLine("Length of dim {0} of tab : {1} ", i, tab.GetLength(i));