C#中分组循环的做法

在我们平时的开发需求中,一定遇到过这样的场景,你需要对一个datatable数据进行分组循环,像这一类的需求应该如何完成呢?

举个例子:

在这里我们在if里面对dt中KOorder,HostName,WERKS来进行分组后循环,应该如何做呢:

c 复制代码
 var groupedData = dt.AsEnumerable()
                     .GroupBy(dr => new {
                         KOorder = dr.Field<string>("KOorder"),
                         HostName = dr.Field<string>("HostName"),
                         WERKS = dr.Field<string>("WERKS")
                     })
                     .ToList();

 foreach (var group in groupedData)

这段代码中核心点在于groupedData 的赋值问题,在这里我们借助LINQ对dt进行分组数据的转换,

AsEnumerable(): 将DataTable转换为可LINQ操作的IEnumerable

GroupBy: 按三个字段组合创建分组键(匿名类型)

KOorder: 字符串类型的KOorder列值

HostName: 字符串类型的HostName列值

WERKS: 字符串类型的WERKS列值(通常是SAP系统中的工厂代码)

ToList(): 立即执行查询并将分组结果转换为内存中的List<IGrouping<...>>

那么就会转换为类List的分组数据,进行foreach即可完成需求

相关推荐
橙子199110163 分钟前
在 Kotlin 中,什么是内联函数?有什么作用?
android·开发语言·kotlin
大学生小郑3 分钟前
Go语言八股文之Mysql优化
开发语言·mysql
Jackson@ML21 分钟前
用Python构建学生成绩管理系统的基本方案
开发语言·python
cpp_learners29 分钟前
QT 使用QPdfWriter和QPainter绘制PDF文件
开发语言·qt·pdf
悠哉清闲30 分钟前
Kotlin 协程 (一)
android·开发语言·kotlin
Bro_cat31 分钟前
在Java项目中集成Deepseek大语言模型实践指南
java·开发语言·人工智能·spring boot·语言模型
asom2237 分钟前
Java 09Stream流与File类
java·开发语言
林开落L1 小时前
C语言:基础篇之常见概念
c语言·开发语言
SongYuLong的博客1 小时前
C# WPF .NET Core和.NET5之后引用System.Windows.Forms的解决方案
c#·wpf·.netcore
愚润求学1 小时前
【Linux】进程间通信(三):命名管道
linux·运维·服务器·开发语言·c++·笔记