从DataTable中选择DataColumn中的唯一值



在SQL中,要获得列中的DISTINCT值,我会执行以下操作:

SELECT DISTINCT ColumnName FROM TableName;

我想做这样的事情,但对于DataTable的DataColumn。我知道这种方式(点击此链接(,它采用了通常的直观方式,即我们可以检查我们是否有Contains(whatWeWant(,如果没有,我们可以将其添加到一些独特项目的容器中。我想知道的是,是否有类似以下的东西:

var uniqueObjects = dataTable.Columns[0].Distinct().ToList();

我从阅读微软文档中也知道,DataColumn类没有一个名为Distinct的方法,但如果你们知道这样的东西,请告诉我。如果不是这样,我将使用Contains的直观方式来制作一个Distinct扩展方法。

如果将System.Data.DataSetExtensions添加到项目的引用中:

using System.Data;
var uniqueObjects = dataTable
.AsEnumerable()
.Select(row => row[0])
.Distinct()
.ToList();

你可以这样做。。。

var uniqueObjects =  dataTable.AsEnumerable().Select(x=>x.Field<ColumnType>("ColumnName")).Distinct().ToList();

最新更新