hasResponseBeenUsedBefore

hasResponseBeenUsedBefore

我在C控制台应用程序中遍历二维数组的一维时遇到问题。这是一个游戏的一部分,每当你错过一次投篮,或者你成功投篮时,都会有机智的反应。让我从我做的二维布尔值开始:

public static bool[,] hasResponseBeenUsedBefore = new bool[2, 11];

第一个维度中有两行。1是在拍摄成功的情况下伴随响应。第二种是在漏掉一枪的情况下伴随着回应。
在我为生成响应而创建的方法中,我尝试遍历第二个维度。
int usedManyTimes = 0;
for (int i = 0; i < hasResponseBeenUsedBefore.GetLength(1); i++)
{
     MessageBox.Show(i.ToString());
     if (hasResponseBeenUsedBefore[2, i] == true) // 2 is the dimension for unsuccessful responses
     {
          usedManyTimes++;
     }
 }

我试图得到第二维度的长度,但没有成功。它抛出一个IndexOutOfRangeException,其中包含以下信息:
hresult:-2146233080
异常消息:索引超出数组的边界。
在此方面的任何帮助都将不胜感激。谢谢你的时间。

最佳答案

要获取“不成功”维度,请使用1,而不是2

if (hasResponseBeenUsedBefore[1, i] == true)

数组使用基于零的索引。当您定义如下数组时:
var hasResponseBeenUsedBefore = new bool[2, 11];

您可以使用hasResponseBeenUsedBefore[0][0]hasResponseBeenUsedBefore[1][10]访问它的元素。

07-27 19:37