Как заказать по дате часть? - PullRequest
       2

Как заказать по дате часть?

1 голос
/ 05 февраля 2012

У меня есть DataColumn из DateTime типа данных, и я хочу упорядочить по году в порядке убывания, за которым следует месяц в порядке убывания.

Вот что я попробовал:

table.AsEnumerable()
    .OrderByDescending(o => o.Field<DateTime>("MaxDateTaken").Year)
    .ThenByDescending(o => o.Field<DateTime>("MaxDateTaken").Month)

Я получаю неверную ошибку приведения, потому что Year и Month являются типами данных int, но я указываю DateTime в <>

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 05 февраля 2012

Вы не должны получать ошибку приведения из-за этого - вы уверены, что поле имеет значение действительно a DateTime?

Звучит так, как будто вы действительно просто хочу

table.AsEnumerable()
     .OrderByDescending(o => o.Field<DateTime>("MaxDateTaken"))

в любом случае, учитывая, что упорядочение по году и месяцу по убыванию в основном упорядочено по убыванию даты, за исключением того, что ничего не делает с частью "день".Вы действительно не хотите включать в свой заказ часть «день»?

1 голос
/ 05 февраля 2012

Почему вы игнорируете часть дня?Это может стать проще:

table = table.AsEnumerable()
   .OrderByDescending(o => DateTime.Parse(o.Field<string>("MaxDateTaken")))
0 голосов
/ 05 февраля 2012

Я исправил это так:

table = table.AsEnumerable()
   .OrderByDescending(o => DateTime.Parse(o.Field<string>("MaxDateTaken")).Year)
   .OrderByDescending(o => DateTime.Parse(o.Field<string>("MaxDateTaken")).Month)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...