随笔 - 165, 文章 - 0, 评论 - 18, 阅读 - 22万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

.NET(C#) System.Linq中实现多列group by(分组)的示例代码

Posted on   火冰·瓶  阅读(1554)  评论(0编辑  收藏  举报
本文主要介绍.NET(C#)中,使用Linq时实现对多列数据进行分组的方法及示例代码。

1、groyp by 用法

复制代码
            List<ImageMultipleLanguage> waiteToRemove = new List<ImageMultipleLanguage>();

            using (var db = new DBEntities())
            {
                var imagesML = db.ImageMultipleLanguages
                    //.Where(x => x.ImageID == 5162)
                    .GroupBy(x => new { x.Language, x.ImageID });
                foreach (var item in imagesML)
                {
                    int index = 0;
                    foreach (var i in item.AsQueryable())
                    {
                        if (index > 0)
                        {
                            waiteToRemove.Add(i);
                        }

                        index++;
                    }
                }


                db.ImageMultipleLanguages.RemoveRange(waiteToRemove);
                await db.SaveChangesAsync();
            }
复制代码

 

 

 

2、C# 3或更高版本使用匿名类型

// 声明式查询语法
var result3 = 
    from x in table
    group x by new { x.Column1, x.Column2 } into g
    select new { g.Key.Column1, g.Key.Column2, QuantitySum = g.Sum(x => x.Quantity) };
// /或方法的语法
var result4 = table.GroupBy(x => new { x.Column1, x.Column2 })
    .Select(g => 
      new { g.Key.Column1, g.Key.Column2 , QuantitySum= g.Sum(x => x.Quantity) });

3、C# 7.1或更高版本使用元组和推断的元组元素名

// 声明式查询语法
var result = 
    from x in table
    group x by (x.Column1, x.Column2) into g
    select (g.Key.Column1, g.Key.Column2, QuantitySum: g.Sum(x => x.Quantity));
//或方法的语法
var result2 = table.GroupBy(x => (x.Column1, x.Column2))
    .Select(g => (g.Key.Column1, g.Key.Column2, QuantitySum: g.Sum(x => x.Quantity)));
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示