• 过滤DataTable中的重复记录


    在实际项目中,通过前台数据构造出来的DataTable中往往存在重复的记录,需要对此DataTable做滤重处理,可以功过DataView.ToTable()方法来实现,具体示例如下:

    代码
    1 public FilterDuplicate()
    2 {
    3 DataTable dt = new DataTable("person");
    4 dt.Columns.Add("name", typeof(string));
    5 dt.Columns.Add("age", typeof(string));
    6 dt.Columns.Add("sex", typeof(string));
    7
    8 dt.Rows.Add("makan", "28", "");
    9 dt.Rows.Add("makan", "28", "");
    10 dt.Rows.Add("zhengrui", "28", "");
    11
    12 Console.WriteLine("Source DataTable Info");
    13 outputDt(dt);
    14
    15 string[] distinctcols = new string[(dt.Columns.Count)];
    16 foreach (DataColumn dc in dt.Columns)
    17 {
    18 distinctcols[dc.Ordinal] = dc.ColumnName;
    19 }
    20
    21 DataTable dtfd = new DataTable("personFilterDup");
    22 DataView mydataview = new DataView(dt);
    23 dtfd = mydataview.ToTable(true, distinctcols);
    24
    25 Console.WriteLine("FilterDuplicate DataTable Info");
    26 outputDt(dtfd);
    27 }
    28
    29 public void outputDt(DataTable dt)
    30 {
    31 Console.WriteLine("DataTable Name="+dt.TableName);
    32 foreach (DataRow dr in dt.Rows)
    33 {
    34 foreach (DataColumn dc in dt.Columns)
    35 {
    36 Console.Write(dc.ColumnName + "=" + dr[dc.Ordinal].ToString() + "\t");
    37 }
    38 Console.WriteLine("");
    39 }
    40 }

    通过以上方法,即可快速实现滤重处理.ToTable()一共有四个重载方法:

    1、ToTable()

    2、ToTable(String)

    3、ToTable(Boolean, array<String>[])

    4、ToTable(String, Boolean, array<String>[])

    参数说明:
    tableName
    类型:System.String

    返回的 DataTable 的名称。

    distinct
    类型:System.Boolean

    如果为 true,则返回的 DataTable 将包含所有列都具有不同值的行。默认值为 false

    columnNames
    类型:array<System.String>[]

    一个字符串数组,包含要包括在返回的 DataTable 中的列名的列表。DataTable 包含指定的列,其顺序与这些列在该数组中的顺序相同。

    返回值

    类型:System.Data.DataTable

    一个新的 DataTable 实例,其中包含所请求的行和列。

  • 相关阅读:
    JavaScript 闭包+封装+异步同步区别
    CSS基础(三)盒子模型
    CSS基础(二)浮动
    CSS基础(一)
    HTML基础(二)
    JAVA 微信开发
    MAVEN学习总结1
    Java开发中的23种设计模式详解(转)
    navicat for mysql 10.1.7注册码
    jQuery.Validate验证库
  • 原文地址:https://www.cnblogs.com/advocate/p/1786095.html
Copyright © 2020-2023  润新知