码迷,mamicode.com
首页 > Windows程序 > 详细

C#DataTable 使用GroupBy方法的lamda 表达式和Linq语句写法

时间:2018-04-11 23:10:49      阅读:556      评论:0      收藏:0      [点我收藏+]

标签:www   c#   err   color   string   erro   不重复   entry   类型   

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
            }
        }

 
 
 
 
//统计不重复的数量,没测试不知是否能用
dt.DefaultView.ToTable(true, new string[1] { "UserName" }).Rows.Count;
 
 
 
http://www.xuebuyuan.com/1990057.html
using (DataTable dt = ds.Tables[0])
        {
            //三个变量分别记录总记录数、不重复的用户数、所有用户的金额总额
            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)", ""));
        }

C#DataTable 使用GroupBy方法的lamda 表达式和Linq语句写法

标签:www   c#   err   color   string   erro   不重复   entry   类型   

原文地址:https://www.cnblogs.com/LuoEast/p/8799161.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!