博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# DataTable 仅某几列值相同时的去重
阅读量:4297 次
发布时间:2019-05-27

本文共 900 字,大约阅读时间需要 3 分钟。

文章目录

简单来说

如题所示,今天遇到的一个需求是,将 DataTable 去重,但这个去重并不是两行完全相同才去,这个去重详情是,如果 DataTable 中,某两列值相同,则任取其一值,以得到一个那两列无相同值、表结构相同的 DataTable。

Show Me The Code

两行完全相同时的去重

两行完全相同时的去重,比较简单。假设待去重的 Datable 叫 originalDt,其内值为:

col1 col2 col3 col4
1 2 3 4
4 5 6 7
1 2 3 4

则去重操作如下:

DataView tempView = new DataView(originalDt);DataTable resultDt = 	tempView.ToTable(true,new string [] {
"col1","col2","col3","col4"}); // true 表示去重,第二参数为新 DataTable 的诸列

其中,resultDt 为去重后的得到的 DataTable。

指定两列相同的去重

指定两列相同的去重,也不难。假设待去重的 Datable 叫 originalDt,其内值为:

col1 col2 col3 col4
1 2 3 4
4 5 6 7
8 2 3 9

则去重操作如下:

DataTable resultDt = originalDt.Clone(); // 复制表结构var groups = resultDt.AsEnumerable().GroupBy(row => row["col2"].ToString() + row["col3"].ToString());foreach (var group in groups){
DataRow newRow = resultDt.NewRow(); newRow.ItemArray = group.ElementAt(0).ItemArray; resultDt.Rows.Add(newRow);}

其中,有重时取分组中第一条数据。

就酱。

转载地址:http://hmbws.baihongyu.com/

你可能感兴趣的文章
量化干货:量化交易系统设计的六大细节
查看>>
量化策略回测tdma
查看>>
量化策略回测TRIXKDJ
查看>>
量化策略回测唐安奇通道
查看>>
CTA策略如何过滤部分震荡行情?
查看>>
量化策略回测DualThrust
查看>>
量化策略回测BoolC
查看>>
量化策略回测DCCV2
查看>>
mongodb查询优化
查看>>
五步git操作搞定Github中fork的项目与原作者同步
查看>>
git 删除远程分支
查看>>
删远端分支报错remote refs do not exist或git: refusing to delete the current branch解决方法
查看>>
python multiprocessing遇到Can’t pickle instancemethod问题
查看>>
APP真机测试及发布
查看>>
iOS学习之 plist文件的读写
查看>>
通知机制 (Notifications)
查看>>
10 Things You Need To Know About Cocoa Auto Layout
查看>>
C指针声明解读之左右法则
查看>>
一个异步网络请求的坑:关于NSURLConnection和NSRunLoopCommonModes
查看>>
iOS 如何放大按钮点击热区
查看>>