//去掉重复行 DataView dv = table.DefaultView; table = dv.ToTable(true, new string[] { "name", "code" });  此时table 就只有name、code无重复的两行了,如果还需要id值则  table = dv.ToTable(true, new string[] { "id","name", "code" });//第一个参数true 启用去重复,类似distinct

如果有一组数据(id不是唯一字段)

id   name   code    张三    123    李四    456    张三    456    张三     123

通过上面的方法得到

id   name   code    张三    123    李四    456    张三    456

去重复去掉的仅仅是 id name code完全重复的行,如果想要筛选的数据仅仅是name不允许重复呢?

table = dv.ToTable(true, new string[] { "name"});

得到:

name   张三    李四  

但是我想要的结果是只针对其中的一列name列 去重复,还要显示其他的列

需要的结果是:

 id   name   code   1    张三    123  2    李四    456

该怎么实现?下面的方法就可以,也许有更好的方法,希望大家多多指教

#region 删除DataTable重复列,类似distinct         /// <summary>            /// 删除DataTable重复列,类似distinct            /// </summary>            /// <param name="dt">DataTable</param>            /// <param name="Field">字段名</param>            /// <returns></returns>            public static DataTable DeleteSameRow(DataTable dt, string Field)         {             ArrayList indexList = new ArrayList();             // 找出待删除的行索引                for (int i = 0; i < dt.Rows.Count - 1; i++)             {                 if (!IsContain(indexList, i))                 {                     for (int j = i + 1; j < dt.Rows.Count; j++)                     {                         if (dt.Rows[i][Field].ToString() == dt.Rows[j][Field].ToString())                         {                             indexList.Add(j);                         }                     }                 }             }             indexList.Sort();  // 排序             for (int i = indexList.Count - 1; i >= 0; i--)// 根据待删除索引列表删除行               {                 int index = Convert.ToInt32(indexList[i]);                 dt.Rows.RemoveAt(index);             }             return dt;         }          /// <summary>            /// 判断数组中是否存在            /// </summary>            /// <param name="indexList">数组</param>            /// <param name="index">索引</param>            /// <returns></returns>            public static bool IsContain(ArrayList indexList, int index)         {             for (int i = 0; i < indexList.Count; i++)             {                 int tempIndex = Convert.ToInt32(indexList[i]);                 if (tempIndex == index)                 {                     return true;                 }             }             return false;         }         #endregion

热门文章

哪里可以免费领养猫咪(哪里可以免费领养猫咪的猫)

摘要: 本篇文章给大家谈谈哪里可以免费领养猫咪,以及哪里可以免费领养猫咪的猫对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、哪里可以领养猫?2、...

Java中Scanner的方法

JavaScanner的next与nextLine方法 1. 前言 在Scanner类中 有许多的方法 常用的有 nextInt()、nextFloat()、nextDouble()、next()、

违约养宠物还能退押金吗怎么处理(宠物店押金不退可以报警吗)

摘要: 本篇文章给大家谈谈违约养宠物还能退押金吗怎么处理,以及宠物店押金不退可以报警吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、领养宠物押金一年返还套路怎..

3月18日更新22.9M/S,2025年最新高速V2ray/Clash/Shadowrocket/SSR订阅链接免费节点地址分享

这一次的节点更新覆盖了美国、香港、新加坡、欧洲、韩国、日本、加拿大等地区,最高速度可达22.9 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

宠物猫打疫苗多少钱一针_养猫注意事项(给宠物猫打疫苗需要多少钱)

摘要: 今天给各位分享宠物猫打疫苗多少钱一针_养猫注意事项的知识,其中也会对给宠物猫打疫苗需要多少钱进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览:1.

24小时宠物医院咨询电话临平(临平宠物店)

摘要: 本篇文章给大家谈谈24小时宠物医院咨询电话临平,以及临平宠物店对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、宠物医生怎么咨询.2、... 本

4月14日更新20.9M/S,2025年最新高速V2ray/Shadowrocket/SSR/Clash订阅链接免费节点地址分享

这一次的节点更新覆盖了香港、欧洲、新加坡、美国、加拿大、日本、韩国等地区,最高速度可达20.9 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

3月17日更新20.7M/S,2025年最新高速V2ray/Shadowrocket/SSR/Clash订阅链接免费节点地址分享

这一次的节点更新覆盖了新加坡、香港、美国、欧洲、日本、韩国、加拿大等地区,最高速度可达20.7 M/S。只需复制下方的Clash/v2ray订阅链接,在客户端添加后即可正常使用。

java中空指针异常情况以及解决办法

概述: 出现空指针异常,常常是因为我们调用的对象是空的而抛出的异常。 问题描述: 第一种:  out.println(request.getParameter("username")); 如果r

十大冷门暴利生意(最挣钱没人干的行业有哪些?)(冷门生意有哪些十大冷门生意利润高)

摘要: 本篇文章给大家谈谈十大冷门暴利生意(最挣钱没人干的行业有哪些?),以及冷门生意有哪些十大冷门生意利润高对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录一览:1、有..

归纳