windows 形成 datagridview,给出 IndexOutOfRangeException
windows form datagridview, giving IndexOutOfRangeException
我有一个由随机生成的数字组成的 datagridview 6x6,我想读取数据网格中的每个单元格并检查有多少数字是重复的,我认为一个好主意是将每个单元格的值放入一个数组中,然后解决。一旦它被排序,我会检查每个值和它旁边的值,看看它们是否相同,如果它们是相同的,我会增加 counter.My 问题是当我 运行 这段代码时,我得到一个 System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'
在我们迭代 datagridview 的部分,这一行“numeros[c] = Convert.ToInt16(cell.Value);
”。
经过一些测试后,我试图只显示每个单元格的值,但它们显示为 0。
private void button2_Click(object sender, EventArgs e)
{
int cont = 0;
int[] numeros = new int[36];
int c = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
numeros[c] = Convert.ToInt16(cell.Value);
c++;
}
}
Array.Sort(numeros);
label12.Text = "";
for(int i = 0; i < 36; i++)
{
label12.Text += numeros[i].ToString() + ", ";
if (i == 35)
{
break;
}
else
{
if (numeros[i] == numeros[i + 1])
{
cont++;
}
}
}
label7.Text = cont.ToString();
}
网格底部有一个额外的空白行,必须将其删除,但程序运行良好
我有一个由随机生成的数字组成的 datagridview 6x6,我想读取数据网格中的每个单元格并检查有多少数字是重复的,我认为一个好主意是将每个单元格的值放入一个数组中,然后解决。一旦它被排序,我会检查每个值和它旁边的值,看看它们是否相同,如果它们是相同的,我会增加 counter.My 问题是当我 运行 这段代码时,我得到一个 System.IndexOutOfRangeException: 'Index was outside the bounds of the array.'
在我们迭代 datagridview 的部分,这一行“numeros[c] = Convert.ToInt16(cell.Value);
”。
经过一些测试后,我试图只显示每个单元格的值,但它们显示为 0。
private void button2_Click(object sender, EventArgs e)
{
int cont = 0;
int[] numeros = new int[36];
int c = 0;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
numeros[c] = Convert.ToInt16(cell.Value);
c++;
}
}
Array.Sort(numeros);
label12.Text = "";
for(int i = 0; i < 36; i++)
{
label12.Text += numeros[i].ToString() + ", ";
if (i == 35)
{
break;
}
else
{
if (numeros[i] == numeros[i + 1])
{
cont++;
}
}
}
label7.Text = cont.ToString();
}
网格底部有一个额外的空白行,必须将其删除,但程序运行良好