【问题标题】:Select unique values within a DataColumn from a DataTable?从 DataTable 中选择 DataColumn 中的唯一值?
【发布时间】:2019-01-11 17:11:00
【问题描述】:

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

SELECT DISTINCT ColumnName FROM TableName;

我想做这样的事情,但对于 DataTable 的 DataColumn。我知道这种方式(遵循link),它使用通常直观的方式来使用我们可以检查我们是否拥有包含(whatWeWant)的事实,如果没有,我们可以将它添加到一些独特物品的容器。我想知道的是那里是否有类似的东西:

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

通过阅读Microsoft Docs,我也知道 DataColumn 类没有一个名为 Distinct 的方法,但如果你们知道类似的事情,请告诉我。如果没有,我将求助于使用 Contains 的直观方式制作 Distinct 扩展方法。

【问题讨论】:

    标签: c# select datatable unique datacolumn


    【解决方案1】:

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

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

    【讨论】:

    • 非常干净的答案我喜欢,我试试看
    • 顺便说一下,我会将变量行更改为列,因为它通过列而不是行
    • 事实上,它将通过System.Data.EnumerableRowCollection<DataRow> 进行枚举。如果您提前知道列的类型,我还建议您使用 Field 扩展名,就像下面的 @m-kudi 所做的那样。
    【解决方案2】:

    你可以这样做......

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

    【讨论】:

    • 让我试试,看起来很有希望
    猜你喜欢
    • 2012-01-24
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2012-08-20
    • 2017-10-10
    • 2018-06-25
    相关资源
    最近更新 更多