过滤数据表中的最后一次重复出现

时间:2015-06-23 15:33:38

标签: c# vb.net

我正在使用以下代码对数据进行排序..

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个,我不确定这是否重要

1 个答案:

答案 0 :(得分:1)

您可以使用LINQ

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

这将选择每个dup-group的最后一行。如果您想订购论坛,请使用grp.OrderBy