首页 / C#开发 / 正文

[LINQ].NET/C#应用程序开发中如何使用LINQ查询出DataTable中某一列的所有行并转换成对应集合后去重和排序?

1379 发布于: 2018-05-06 19:04 读完约需 1 分钟

版权保护声明:本文未经许可,禁止任何形式转载,违者必究。

问题描述

在.NET/C#应用程序开发中,当前有一个DataTable数据表,其中包含一个名为Name的列。现在需要将这个DataTable数据表中的Name列和所有数据行查询出来,并将这些行转换成集合,然后进行去重和排序处理。

伪代码如下:

var names =
    (from DataRow dr in dataTable.Rows
    orderby (string)dr["Name"]
    select (string)dr["Name"]).Distinct();

方案一

使用LINQ查询语法实现,如下:

var names = (from DataRow dr in dataTable.Rows
             select (string)dr["Name"]).Distinct().OrderBy( name => name );

方案二

var sortedTable = (from results in resultTable.AsEnumerable()
select (string)results[attributeList]).Distinct().OrderBy(name => name);

方案三

使用LINQ的扩展方法实现,如下:

var result = dataTable.Rows.Cast<DataRow>().select(dr => dr["Name"].ToString()).Distinct().OrderBy(name => name);

版权保护声明:本文未经许可,禁止任何形式转载,违者必究。

阅读了该文章的人还浏览了...

上一篇: [LINQ].NET/C#应用程序开发中如何使用LINQ将DataTable中所有列名转换成一个列名组成的集合?

下一篇: [LINQ].NET/C#应用程序开发如何使用LINQ根据一个集合的某个属性对另一个集合进行排序?

本文永久链接码友网 » [LINQ].NET/C#应用程序开发中如何使用LINQ查询出DataTable中某一列的所有行并转换成对应集合后去重和排序?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册