Linq分组

Linq应用场景

linq的语法通过System.Linq下面的Enumerable类提供支持,也就是说,只要是实现了IEnumerable<T>的对象都可以使用Linq的语法来查询。LINQ定义了大约40个查询操作符,如select、from、in、where、group by 以及order by,通过查看源代码,实际上linq为IEnumerable<TSource>实现了一系列的扩展方法。

二、Linq中的关键字

今天这里主要讨论order by 和group by的使用

1.linq order by(多列)

            var list=     from r in Transactions
                          where r.ZhiFuQuDao== "支付宝"
                          orderby r.HospitalID ,r.Moneys descending 
                          select r;

2.Lambda表达式 实现 order by(多列)

            var list =    Transactions.
                          OrderBy(r => r.HospitalID).
                          ThenBy(r => r.Type).
                          ThenByDescending(r => r.Moneys ). Take(10);

3.linq group by(多列)

  1. 简单的实现方式:

 
         var list =  from T in Transactions
                     group T by T.ZhiFuQuDao into g
                     select g; 

语句描述:Linq使用Group By 统计交易流水的支付渠道方式(支付宝或微信等等)。

说明:这里将查询结果 命名为g,一旦重新命名,T 的作用域就结束了,所以,最后select时,只能select g。

2.分类统计各个分类的最大值(Max)、最小值(Min)、平均值(Average)和求和(Sum)

3.多列(Multiple Columns)

 

     var dateQDList =   from T in hisDZD  
                        group T by new  
                        {  
                         T.JiaoYiRQ,  
                         T.JiaoYiQDMC
                        }   into g  
                        select new  
                        {  
                         g.Key.JiaoYiRQ,  
                         g.Key.JiaoYiQDMC  
                        }; 
  

4. lambda group by(多列带表达式)

var dateQDList = hisDZD.GroupBy(t => new 
                   { 
                    JiaoYiRQ=Convert.ToDateTime(t.JiaoYiRQ).ToString("yyyy-MM-dd"),
                    t.JiaoYiQDMC 
                    })
                    .Select(g=>new {
                    JiaoYiRQ = Convert.ToDateTime(g.Key.JiaoYiRQ).ToString("yyyy-MM-dd"),
                    JiaoYiQDMC = g.Key.JiaoYiQDMC 
                    }).ToList();

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#中,LINQ (Language Integrated Query) 是一个强大的工具,用于处理集合数据,包括分组和计数。 假设你有一个`List<int>`,并且你想要按特定的规则对其进行分组并计数,你可以使用LINQ来完成这个任务。 下面是一个例子: ```csharp List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var groupedCount = numbers.GroupBy(x => x / 2) // 分组规则,这里按每个数字除以2进行分组 .Select(x => new { GroupName = x.Key, Count = x.Count() }) // 获取每个组并计算数量 .ToList(); // 将结果转化为列表以便输出 foreach (var item in groupedCount) { Console.WriteLine($"Group Name: {item.GroupName}, Count: {item.Count}"); } ``` 在这个例子中,我们首先创建了一个包含一些整数的列表。然后我们使用`GroupBy`方法根据每个数字除以2的结果进行分组。`GroupBy`方法返回一个由分组键(在这个例子中是每个数字除以2的结果)和每个键对应的元素集合组成的集合。然后我们使用`Select`方法来创建一个新的对象,该对象包含了组名(即键)和计数。最后,我们将结果转换为列表并打印出来。 上述代码会按照每组包含两个数字的方式对列表进行分组,并且打印出每个组的组名和数量。例如,如果输出结果是 `Group Name: 1, Count: 2` 和 `Group Name: 3, Count: 2`,那么这就表示原始列表中有两个数字分别是1和3,它们被分到了同一个组中。 这只是LINQ的一个基本用法,你可以根据需要对其进行修改和扩展。例如,你可以使用`Count`方法来获取特定组的元素数量,或者使用其他的方法来对分组后的数据进行进一步的处理和分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值