惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
J
Java Code Geeks
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC
IT之家
IT之家
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
U
Unit 42
爱范儿
爱范儿
博客园 - 聂微东
F
Fortinet All Blogs
V
Visual Studio Blog
Blog — PlanetScale
Blog — PlanetScale
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
L
LangChain Blog
雷峰网
雷峰网
B
Blog RSS Feed
宝玉的分享
宝玉的分享
T
Tailwind CSS Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Engineering at Meta
Engineering at Meta
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 喝咖啡就蒜瓣儿

通过六段代码理解join、wait、sleep、yield、endInvoke、Waitone的区别 JWT(JSON Web Tokens )简洁说明 通道、选区和蒙版:写给Ps初学者的参考 数据库中Schema(模式)概念的理解 怎样测试串口和串口线是否正常 DataTable如何删除特定行 Difference between WCF and Web API and WCF REST and Web Service C#创建带参数的线程 Application.DoEvents()和多线程 .NET Framework 工具 【转】实现Sqlite datediff日期时间相减的方法 Devexpress GridView增加CheckBox列 没有注册类 (异常来自 HRESULT:0x80040154 (REGDB_E_CLASSNOTREG)) 如何让Advanced Installer卸载软件时保留一些文件 【转】SQLite提示database disk image is malformed的解决方法 【转】Winform下KeyDown,KeyPress,KeyUp事件的总结 【转】C# 子窗体如何调用父窗体的方法 C# WinForm自定义控件响应键盘事件 TAG的用法和用途[转] Sqlite: unable to open database file
DataTable中如何去除重复的项【转】
喝咖啡就蒜瓣儿 · 2015-01-07 · via 博客园 - 喝咖啡就蒜瓣儿

上周在项目中遇到一个问题,就是获取DataTable中某一列的值,因为从数据库中检索数据时,按照2个字段进行分组,而要获得的那一列刚好在分组这两列中,所以该列的值必然有重复,于是就想到了去除重复,有了思路以后在网上看了一些方法,大都是遍历之类的,虽说功能是可以实现,但是效率太低了,最后发现了一个简单的方法,如下:

 public string[] GetNamesFromDataTable(DataTable dataTable)
        {
            DataView dv = dataTable.DefaultView;
            dataTable = dv.ToTable(true, "Name");
            string[] names = new string[dataTable.Rows.Count];
            for (int i = 0; i < names.Length; i++)
            {
                names[i] = dataTable.Rows[i][0].ToString();
            }
            return names;
        }

解析:DataView.ToTable()方法有四个重载方法,分别如下:

      ToTable():根据现有的DataView中的行,创建并返回一个新的DataTable

      ToTable(string tableName):功能如上,只不过是为新的DataTable赋了一个名字

      ToDataTable(bool distinct,parm string[] columnNames):根据现有的DataView中的行创建并返回DataTable,distinct,为true,则返回所有列都具有不同值的行,第二个参数为一个字符数组,即可以指定要获取的列,上边的例子中,只指定了一列,即获取某一列的不重复的信息。

      ToDataTable(string tableName,bool distinct,parm string[] columnNames);功能如上,只不过多了一个DataTableName