在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();