Выберите уникальные значения в DataColumn из DataTable?

В SQL, чтобы получить значения DISTINCT в столбце, я бы сделал что-то вроде:

SELECT DISTINCT ColumnName FROM TableName;

Я хотел бы сделать что-то подобное, но для DataCable столбца DataTable. Я знаю об этом способе (перейдите по этой ссылке), который использует обычный интуитивно понятный способ использования того факта, что мы можем проверить, содержит ли то, что у нас есть (whatWeWant), или нет, и можем ли мы добавить его в какой-то контейнер уникальные предметы. Я хотел бы знать, есть ли что-то вроде следующего:

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

Читая Документы Microsoft, я также осознаю, что в классе DataColumn нет метода Distinct, но если есть что-то подобное, о чем вы, ребята, знаете, пожалуйста, дайте мне знать. Если нет, я прибегну к созданию метода расширения Distinct с интуитивным способом использования Contains.

2 ответа

Решение

Если вы добавите 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();
Другие вопросы по тегам