https://www.cnblogs.com/johnblogs/p/6006867.html
DataTable ds = new DataTable();
//1、lamda 表达式写法(推荐)
var
result = ds.AsEnumerable().GroupBy(s => new{Year =
s.Field<int>("Year"), Month = s.Field<int>("Month"), Day =
s.Field<int>("Day")});
//2、Linq写法 最终编译器会把它转化为lamda表达式
//var result = from s in ds.Tables[0].AsEnumerable()
group s by new { Year = s.Field<int>("Year"), Month =
s.Field<int>("Month"), Day = s.Field<int>("Day") } into temp
select temp;
//DataTable 使用GroupBy方法需要注意result为IGrouping<int,DataRow>类型
foreach (var thisGroup in result)
{
foreach (var row in thisGroup)
{
//遍历当前这组的所有row
}
}
{
//三个变量分别记录总记录数、不重复的用户数、所有用户的金额总额
int rowsCount, distinctUserRowsCount, AllUserMoney;
rowsCount = dt.Rows.Count;
distinctUserRowsCount = dt.DefaultView.ToTable(true, new string[1] { "UserName" }).Rows.Count;
AllUserMoney = Convert.ToDecimal(dt.Compute("sum(UserMoney)", ""));
}