【发布时间】:2018-02-02 20:20:50
【问题描述】:
我有一个这样的数组,可以在用户前进时保存查询:
String [,] qArr=new String[2,6];
我对数组中的这 6 行中的每一行都有一个按钮。
这是我想要做的:
如果用户在第 4 步(按钮 4,因此保存了 8 个查询),现在单击按钮 2,那么我想删除数组中第 2 行之后的任何查询。
这是我所做的:
public void remQ(int position) //position is the row starting from 0
{
position=(position+1)*2;
Array.Clear(qArr,position,qArr.Length);
}
Error1:这是我运行时得到的结果:
索引超出了数组的范围
调试显示这些值:
qArr=string[2,6]
d=4
qArr.Length=12
我该如何解决这个问题?
【问题讨论】:
-
你不应该使用 qArr.Length,你应该告诉 qArr.Length - position 有你想要清除的元素数量。
-
一个问题应该限制为一个问题。如果你有一个新问题(就像你在这里做的那样)然后问一个新问题,不要编辑当前问题。否则,之前回答您问题的答案不再完整。实际上,我可以快速提示您将数组交换为
string [6,2]可能会表现出您想要的行为。 -
@Chris 我不确定是否应该开始一个新的,因为问题没有改变,只是错误改变了。无论如何,我把它恢复了。感谢您的快速提示,将尝试一下。
标签: c# arrays multidimensional-array