我希望使用datagridview
在C#中以网格形式显示一些计算的2D数据。
网格的大小没有前缀,我必须使用一些for循环一次计算一个单元格,所以我不能使用datatable
类用于我们添加数据的相同目的对于一个完整的行(我不知道是否有办法在一个单元格中添加数据)。
所以我尝试了2D阵列执行相同操作但是当我试图在datagridview
中显示数据时,它显示错误:数组不是一维数组。
以下是错误消息的快照:
以下是代码:
string[,] difference = new string[dataGridView1.Rows.Count, dataGridView2.Rows.Count];
foreach (DataGridViewRow row1 in dataGridView1.Rows)
{
foreach ( DataGridViewRow row2 in dataGridView2.Rows)
{
difference[row1.Index, row2.Index] = Convert.ToString(Math.Abs((Convert.ToSingle(dataGridView1.Rows[row1.Index].Cells[0].Value)) - (Convert.ToSingle(dataGridView2.Rows[row2.Index].Cells[0].Value))));
}
}
dataGridView3.DataSource = difference;
}
答案 0 :(得分:0)
你已经采用了二维数组,但只传递了一维数组
我修改了以下代码,请查看。
if(dataGridView1.Rows.Count== dataGridView2.Rows.Count)
{
string[] difference = new string[dataGridView1.Rows.Count];
foreach (DataGridViewRow row1 in dataGridView1.Rows)
{
foreach ( DataGridViewRow row2 in dataGridView2.Rows)
{
difference[row1.Index] = Convert.ToString(Math.Abs((Convert.ToSingle(dataGridView1.Rows[row1.Index].Cells[0].Value)) - (Convert.ToSingle(dataGridView2.Rows[row2.Index].Cells[0].Value))));
}
}
dataGridView3.DataSource = difference;
}
}