Выберите уникальные значения в 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();