要按照SQL的Group By功能对DataGridView进行分组,可以使用LINQ查询来实现。以下是一个示例代码:
// 假设DataGridView中有两列:Name和Age
// 创建一个新的DataTable用于存储分组结果
DataTable groupedData = new DataTable();
// 添加分组后的列
groupedData.Columns.Add("Name", typeof(string));
groupedData.Columns.Add("AverageAge", typeof(double));
// 使用LINQ查询对DataGridView进行分组
var groups = from DataGridViewRow row in dataGridView1.Rows
group row by row.Cells["Name"].Value into g
select new
{
Name = g.Key,
AverageAge = g.Average(row => Convert.ToDouble(row.Cells["Age"].Value))
};
// 将分组结果添加到DataTable中
foreach (var group in groups)
{
groupedData.Rows.Add(group.Name, group.AverageAge);
}
// 将分组结果绑定到新的DataGridView
dataGridView2.DataSource = groupedData;
上述代码中,首先创建了一个新的DataTable groupedData
用于存储分组结果。然后使用LINQ查询将DataGridView中的数据按照Name列进行分组,并计算每个分组的平均年龄。最后将分组结果添加到DataTable中,并将DataTable绑定到新的DataGridView dataGridView2
上,以显示分组后的结果。