筛选数据表中最后一次重复出现的情况

本文关键字:情况 数据表 最后一次 筛选 | 更新日期: 2023-09-27 17:59:17

我正在用以下代码对数据表进行排序。。

Dim sortedExtRecords1 As DataTable
sortedExtRecords1 = parsedDataset.Tables("Detail").Clone
Dim dvParsedDataset1 As New DataView(parsedDataset.Tables("Detail"))
dvParsedDataset1.Sort = AuthorizatonConstants.Authorization_ID
sortedExtRecords1 = dvParsedDataset1.ToTable("Detail")

我可以进一步过滤结果,只返回非重复项,如果有重复项,我只想要重复项的最后一条记录。我的重复项大小各不相同,一些ID可以有3个重复项,其他5个10个,我不确定这是否重要

筛选数据表中最后一次重复出现的情况

您可以使用LINQ:

DataTable nonDups = parsedDataset.Tables("Detail").AsEnumerable()
    .GroupBy(row => row.Field<string>("Authorization_ID"))
    .OrderBy(grp => grp.Key)
    .Select(grp => grp.Last())
    .CopyToDataTable();

这将选择每个dup组的最后一行。如果要订购组,请使用grp.OrderBy