以下是一个示例代码,用于比较两个DataGridView并通过匹配一列返回一个新的DataGridView。
// 创建一个新的DataGridView,用于存储匹配结果
DataGridView resultDataGridView = new DataGridView();
// 获取第一个DataGridView的列名
List columnNames = new List();
foreach (DataGridViewColumn column in dataGridView1.Columns)
{
columnNames.Add(column.Name);
}
// 将第一个DataGridView的列名添加到新的DataGridView中
foreach (string columnName in columnNames)
{
resultDataGridView.Columns.Add(columnName, columnName);
}
// 遍历第一个DataGridView的每一行
foreach (DataGridViewRow row1 in dataGridView1.Rows)
{
// 获取第一个DataGridView的匹配列的值
string matchValue = row1.Cells["ColumnName"].Value.ToString();
// 在第二个DataGridView中查找匹配的行
foreach (DataGridViewRow row2 in dataGridView2.Rows)
{
// 获取第二个DataGridView的匹配列的值
string compareValue = row2.Cells["ColumnName"].Value.ToString();
// 如果匹配成功,将匹配的行添加到新的DataGridView中
if (matchValue == compareValue)
{
object[] rowData = new object[columnNames.Count];
for (int i = 0; i < columnNames.Count; i++)
{
rowData[i] = row2.Cells[columnNames[i]].Value;
}
resultDataGridView.Rows.Add(rowData);
}
}
}
// 返回匹配结果的DataGridView
return resultDataGridView;
在上面的代码中,假设要比较的列名为"ColumnName"。首先,我们创建一个新的DataGridView来存储匹配结果。然后,遍历第一个DataGridView的每一行,获取匹配列的值,并在第二个DataGridView中查找匹配的行。如果匹配成功,将匹配的行添加到新的DataGridView中。最后,返回匹配结果的DataGridView。