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

C#开发 作者: Rector 380阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

问题描述

在.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中某一列的所有行并转换成对应集合后去重和排序?

发布于: 2018-05-06 19:04:30
分享扩散: