DataTable from group by
时间: 2023-12-20 12:32:27 浏览: 136
DataTable是C#中用于表示内存中的数据表的类。它类似于数据库中的表,可以存储和操作数据。而"from"和"group by"是LINQ查询语句中的关键字,用于从数据源中筛选和分组数据。
在C#中,可以使用LINQ查询语句从DataTable中进行筛选和分组操作。下面是一个示例代码,演示了如何使用LINQ查询语句从DataTable中进行分组操作:
```csharp
// 假设有一个名为"myTable"的DataTable对象
DataTable myTable = new DataTable();
// 添加列
myTable.Columns.Add("Name", typeof(string));
myTable.Columns.Add("Age", typeof(int));
// 添加数据
myTable.Rows.Add("John", 25);
myTable.Rows.Add("Mary", 30);
myTable.Rows.Add("John", 35);
myTable.Rows.Add("Mary", 28);
// 使用LINQ查询语句进行分组操作
var query = from row in myTable.AsEnumerable()
group row by row.Field<string>("Name") into grp
select new
{
Name = grp.Key,
Count = grp.Count(),
AverageAge = grp.Average(row => row.Field<int>("Age"))
};
// 遍历查询结果
foreach (var result in query)
{
Console.WriteLine($"Name: {result.Name}, Count: {result.Count}, Average Age: {result.AverageAge}");
}
```
在上面的示例代码中,首先创建了一个名为"myTable"的DataTable对象,并添加了两列(Name和Age)以及一些数据。然后使用LINQ查询语句对数据进行分组操作,按照"Name"列进行分组,并计算每个分组的行数和平均年龄。最后,遍历查询结果并输出。
需要注意的是,使用LINQ查询语句对DataTable进行操作需要先将DataTable转换为可查询的数据源,可以使用`myTable.AsEnumerable()`方法将DataTable转换为可查询的数据源。
阅读全文