Улучшение / изменение запроса LINQ - PullRequest
0 голосов
/ 17 октября 2011

У меня уже есть переменная, содержащая несколько групп. Я сгенерировал это, используя следующий запрос LINQ:

var historyGroups = from payee in list
                                group payee by payee.Payee.Name into groups
                                orderby groups.Key                                
                                select new {PayeeName = groups.Key, List = groups };

Теперь моя переменная historyGroups может содержать много групп. У каждой из этих групп есть ключ, представляющий собой строку, и представление результатов сортируется в соответствии с этим. Теперь внутри каждой из этих групп есть Список , соответствующий клавише. Внутри этого списка есть элементы, и каждый из этих элементов является объектом определенного типа. Одно из его полей имеет тип System.DateTime. Я хочу отсортировать этот внутренний Список по дате.

Может кто-нибудь помочь с этим? Может быть изменен вышеуказанный запрос или новый запрос к переменной historyGroups.

Спасибо

1 Ответ

1 голос
/ 17 октября 2011

Мне непонятно, что вы хотите отсортировать (отсутствует определение типа получателя)

var historyGroups = from payee in list
    group payee by payee.Payee.Name into groups
    orderby groups.Key                                
    select new {
         PayeeName = groups.Key, 
         List = groups.OrderBy(payee2 => payee2.SomeDateTimeField)
    };

Самый простой.

Если вы действительно хотите сортировать только по дате (а не по времени), используйте SomeDateTimeField.Date.

Внутри этого Списка есть элементы, и каждый из этих элементов является объектом определенного типа. Одно из его полей имеет тип System.DateTime

Это приводит меня к возможно (?) Подозреваемому

List = groups.OrderBy(payee2 => payee2.ParticularTypedElement.DateTimeField)

Или, может быть, даже

List = groups.OrderBy(payee2 => payee2.ObjectsOfParticularType
      .OfType<DateTime>()
      .FirstOrDefault()
)

Я надеюсь, что в следующий раз вы сможете прояснить вопрос немного лучше, так что нам не нужно так много угадывать (и придумывать запутанный ответ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...