当前位置:首页 > Windows程序 > 正文

Day = s.Fieldint("Day")}); //2、Linq 写法 最终编译器会把它转化为lamda表达式

2024-03-31 Windows程序

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;

 

 

 

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)", ""));
        }

标签:

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

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/33709.html

Jm-杰米博客Jamie
草根站长的技术交流乐园!IT不会不要紧快来好好学习吧!
  • 20786文章总数
  • 7494587访问次数
  • 建站天数
  • 友情链接