我正在使用以下代码对数据表进行排序:
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();
这将选择每个重复组的最后一行。如果您想订购团体,请使用
grp.OrderBy
。