【问题标题】:Eliminate duplicate records in DataTable消除DataTable中的重复记录
【发布时间】:2014-02-10 21:37:02
【问题描述】:

我有一个包含以下内容的 .NET DataTable:

Date        ID1     ID2
1/1/2014    1       a
1/1/2014    2       a
1/1/2014    3       a
2/1/2014    1       b
2/1/2014    2       b
2/1/2014    3       b
3/1/2014    1       c
3/1/2014    2       c
3/1/2014    3       c

如何使用数据表的方法消除重复,使其变为

Date        ID1     ID2
1/1/2014    1       a
2/1/2014    2       b
3/1/2014    3       c

【问题讨论】:

  • 根据什么列复制?如果只想比较日期,为什么要取第一个日期的第一条记录、第二个日期的第二条记录和最后一个日期的最后一条记录?这是任意的吗?
  • 重复的日期和 ID2,也许我不应该称之为重复...

标签: c# sql datatable


【解决方案1】:

因此,您想根据日期和 ID2 列删除 DataTable 的“重复项”。你可以使用Linq-To-DataSet和Enumerable.GroupBy:

tblDate = tblDate.AsEnumerable()
    .GroupBy(r => new { date = r.Field<DateTime>("Date"), id2 = r.Field<string>("ID2") })
    .Select(g => g.First())
    .CopyToDataTable();

这仅取每个组的第一行,这不是您的结果。但是,您还没有提到ID1 的规则。

【讨论】:

    猜你喜欢
    • 2012-09-03
    • 1970-01-01
    • 2011-11-13
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-11
    相关资源
    最近更新 更多