none
Как получить все разные значения конкретной колонки DataTable? C# RRS feed

  • Вопрос

  • Получаю объект типа DataTable. Мне необходимо выбрать все разные значения по одной из колонок.

    Подскажите пожалуйста, используя какие преобразования, я могу это сделать. Как я понимаю - такой процесс в терминах работы с данными называется группировкой, но непосредственно у DataTable я таких методов не нашел. Его Select позволяет отфильтровать, но не получить именно все разные значения. И вариаций Linq для данного объекта я тоже не увидел.

    Простой перебор не подойдет - впоследствии объем данных будет большим. Физически - это страница в SharePoint, в которой я хочу реализовать фильтр по годам документов с контрагентами. Фильтр реализую выпадающим списком, который заполняю данными из запроса к сайту: SPSiteDataQuery, а вот он как раз и возвращает DataTable.

    20 января 2017 г. 8:08

Ответы

  • Писать LINQ запросы с группировкой к DataTable, несомненно, можно. Попробуйте так:

    IEnumerable<DataRow> results = dataTable.AsEnumerable().GroupBy(t => t["columnName"])
          .Select(g => g.First());

     
    • Помечено в качестве ответа Denis Prokofjev 23 января 2017 г. 7:30
    20 января 2017 г. 17:29