【问题标题】:Removing duplicate rows from a datatable in c#c# 删除数据表中的重复行
【发布时间】:2014-05-09 00:14:01
【问题描述】:

我有一个包含一些数据的数据表... 数据如下所示。

____________________________________________________
|    |                    |            |           |
|mid |    usrnme          |   pname    |   prate   |
|---------------------------------------------------
|11  | demo1@gmail.com    |   sample1  |    2000   |
|14  | demo2@live.com     |   sample2  |    5000   |
|15  | demo3@yahoo.com    |   sample3  |    8000   |
|11  | demo1@gmail.com    |   sample1  |    2000   |
|18  | demo4@gmail.com    |   sample4  |    3000   |
====================================================

如您所见,数据表中有两行具有相同的值。所以在我的代码中,我需要检查我的数据表中是否有任何重复的行。如果有任何重复的行,则消除该特定行,然后将下一行移至消除的行。在这种情况下,第 1 行和第 4 行相同,因此必须对其进行更正。因此必须删除第 4 行,并且必须将第 5 行插入第 4 行位置。以这种方式,如果有 n 行,则必须像这样检查和更正这 n 行。如何在 c#.net 中实现这一点。我是 C# 世界的新手。任何人的任何帮助都会对我有很大的帮助..提前致谢。

【问题讨论】:

标签: c# c#-4.0 datatable duplicate-removal


【解决方案1】:

使用<Datatable>.DefaultView.ToTable(true)

例如:dt.DefaultView.ToTable(true);

如果我们需要特定列的不同行,请使用

<Datatable>.DefaultView.ToTable(true,<Columns>)

例如:dt.DefaultView.ToTable(true, "EmpId", "Name");

【讨论】:

    【解决方案2】:

    这是在数据表中没有重复值的最简单方法。 Linq 是实现这一目标的最佳方式。 请根据需要更改列的数据表名称和数据类型。它应该与 dataTable 数据类型匹配。

      var avoidDuplicates= from row in ds.Tables["DataTableName"].AsEnumerable()
                   group row by row.Field<string>("m_id") into rowGroup
                   select new
    
                   {  
                       m_id = rowGroup.Key,
    
         user_name = string.Join(" ", rowGroup.Select(row => row.Field<string>("usrnme")).Distinct().ToArray()),
    
         p_name = string.Join(" ", rowGroup.Select(row => row.Field<string>("pname")).Distinct().ToArray()),
    
                                            prate = string.Join(" ", rowGroup.Select(row => row.Field<decimal>("prate")).Distinct().ToArray()),
        }
    

    我希望这能解决您的问题

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 2017-09-03
      • 2016-08-18
      • 2020-04-03
      • 2013-07-25
      • 2012-05-15
      相关资源
      最近更新 更多