OrderBy выбранный столбец DateTime (строка имени столбца) из таблицы данных C # - PullRequest
0 голосов
/ 22 января 2019

Я заполнил данные из Excel как dt3. Теперь я пытаюсь использовать linq, чтобы выбрать столбец DateTime из таблицы данных в виде списка, и я хочу, чтобы он в порядке возрастания. Я использую System.Linq.Dynamic; однако, как ссылка, я не уверен, что я использую это правильно.

public List<DateTime?> GetDocAvailDates(System.Data.DataTable dt3)

{

List<DateTime?> DateList = dt3.AsEnumerable().Select(r => r.Field<DateTime?>("Doc Available")).Distinct().ToList();

          return DateList;
}

Я пытался

    public List<DateTime?> GetDocAvailDates(System.Data.DataTable dt3)
            {
                List<DateTime?> DateList = dt3.AsEnumerable().Select(r => r.Field<DateTime?>("Doc Available")).

OrderBy("Doc Available")
OrderBy(r => r.Field<DateTime?>("Doc Available"))
OrderBy(orderby) with a string orderby = "Doc Available"; 


.Distinct().ToList();

              return DateList;

            }

Никто не работал. Пожалуйста, порекомендуйте. Спасибо

1 Ответ

0 голосов
/ 22 января 2019

Используйте

List<DateTime?> DateList = dt3.AsEnumerable().Select(r => r.Field<DateTime?>("Doc Available")).Distinct().OrderBy(x => x).ToList();

После Disctinct(), фактически уже после Select(), у вас уже есть перечисление DateTime?. Итак, вы заказываете по самому значению.

OrderBy(x => x) // x can be any name that is not used in the same scope.

Обратите внимание, что вы должны использовать OrderBy() после Distinct(), потому что Distinct() может снова изменить порядок элементов.

...