二维数组 - 查找第一个Null

时间:2018-02-02 20:20:50

标签: c# arrays multidimensional-array

我有一个这样的数组,可以在用户前进时保存查询:

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);    
} 

错误1:这是我运行时得到的结果:

  

索引超出了数组的范围

调试显示以下值:

qArr=string[2,6]   
d=4   
qArr.Length=12

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您是否阅读了https://msdn.microsoft.com/en-us/library/system.array.clear(v=vs.110).aspx以及可能导致该异常的原因?

  

"索引和长度的总和大于数组的大小。"

您将长度作为数组的总长度传递。除非您从索引0开始,否则您不会清除所有项目。您需要正确计算要清除的项目数:

Array.Clear(qArr,position,qArr.Length-position);