本文主要介绍.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)));
分类:
Asp.Net/C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了