项目中写到看到的一些LINQ和Lambda语句

1,求和

       var datas = SellOutActualData.Where(b => b.BrandCode == brandExportParam.BrandInfo.BrandCode && b.ReportMonth == item.Month);
       decimal sumValue = datas.Sum(a => a.Amount);

2,Linq筛选,转换成指定类

var query = dbContext.TWSalesRecord.Where(d => d.DataSource == "HCT");
//筛选字段HCTAccount中的值要在 model.AccountList内
query = query.Where(d => model.AccountList.Contains(d.HCTAccount));

List<TWSalesData> data = query.Where(d => d.ReportMonth >= model.StartDate 
                                       && d.ReportMonth <= model.EndDate 
                                       && !string.IsNullOrEmpty(d.GSKGMMCode))
                              .Select(d => new TWSalesData
                                          {
                                              Account = d.HCTAccount,
                                              GMMCode = d.GSKGMMCode,
                                              ReportMonth = d.ReportMonth,
                                              Amount = d.GSKAmount
                                         }).ToList();           //将最终的结果转为Sales类集合

3,linq筛选,转换成 “字典”

private Dictionary<string, TWProducts> products = new Dictionary<string, TWProducts>();
products = db.TWProducts.ToDictionary(d => d.GMMCode, d => d);

4,分组查询

结果是,某个分销商,在某月中的 某个商品的 “总销售额” 和 “数量” 是多少

 List<SalesDataModel> sales = (from data in db.TWSalesRecord
                                          where data.DataSource == "HCT" && data.HCTAccount != null && data.ReportMonth >= minDate && data.ReportMonth <= maxDate && !string.IsNullOrEmpty(data.GSKGMMCode) && data.GSKAmount != 0
                                          group data by new
                                          {
                                              data.HCTAccount,       //根据分销商,月份,商品编码分组
                                              data.ReportMonth,
                                              data.GSKGMMCode

                                          } into d
                                          select new SalesDataModel
                                          {
                                              Account = d.Select(s => s.HCTAccount).FirstOrDefault(),
                                              Month = d.Select(s => s.ReportMonth).FirstOrDefault(),
                                              GMMCode = d.Select(s => s.GSKGMMCode).FirstOrDefault(),
                                              Value = d.Sum(s => s.GSKAmount)/1000,
                                              Quantity = d.Sum(s => s.Quantity)
                                          }).ToList();
View Code

5,简单计算函数(sum,max,min,count)

//linq
Var ss=(from r in db.table select r).max(p=>p.id);
                                    .min(p=>p.id);
                                    .sum(p=>p.id);
                                    .count();
//Lambda
Var ss1=db.table.max(p=>p.id);
Var ss1=db.table.min(p=>p.id);
Var ss1=db.table.sum(p=>p.id);
Var ss1=db.table.count();

 

转载于:https://www.cnblogs.com/footmark/p/10655557.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值