【发布时间】:2020-06-22 16:01:08
【问题描述】:
我有一个数据表,其中包含如下所示的 3 列,其中包含重复记录。我想找到具有相同 Id 字段的重复 FileName 记录,并通过比较日期字段列删除较旧的记录。我怎样才能在Linq中做到这一点?
当前
文件名 ||创建日期 ||身份证
测试.pdf || 2020 年 6 月 22 日 || 1
测试1.pdf || 2020 年 6 月 22 日 || 2
测试.pdf || 2020 年 6 月 21 日 || 1
测试.pdf || 2020 年 6 月 21 日 || 3
删除此记录 - ID = 1 的 Test.pdf,因为它于 06/21 更新。
预期
文件名 ||创建日期 ||编号#
Test.pdf ||2020 年 6 月 22 日 || 1
Test1.pdf ||2020 年 6 月 22 日 || 2
测试.pdf ||2020 年 6 月 21 日 || 3
我可以通过按文件名对记录进行分组来使用下面的 sn-p 获取重复记录,但我不知道如何也按 Id 对记录进行分组
var filteredList = DT.AsEnumerable()
.GroupBy(dr => dr.Field<string>("FileName"))
.Select(g => g.OrderByDescending(dr => dr.Field<DateTime>("CreationDate")).First())
.ToList();
【问题讨论】: