Linq сгруппировать и упорядочить по нескольким условиям - PullRequest
1 голос
/ 16 января 2012

У меня есть следующее:

myFilteredContractors = (From c In myFilteredContractors
    Join cc In myConClasses On c.ContractorId Equals cc.ContractorId
    Where inClassifications.Contains(cc.ClassificationId)
    Group c By Key = cc.ContractorId Into Group, Count = Count()
    Order By Count Descending
    Select (From c1 In myContractors Where c1.ContractorId = Key).FirstOrDefault).ToList

Это правильно упорядочивает этот список подрядчиков по количеству классификаций, которые у них есть.

Я также хочу упорядочить их по тому, есть ли у них набор полей (CompanyOverview), который, если это пустая строка, должен быть ниже тех подрядчиков, которые установили свои CompanyOverview.Кроме того, после заказа CompanyOverview я хочу сделать заказ до даты регистрации.

Таким образом, он должен заказать:

  1. Количество классификаций
  2. Установлен ли обзор (c.CompanyOverview)
  3. Дата регистрации (c.AppliedDate)

Возможно ли все это в LINQ?

1 Ответ

0 голосов
/ 16 января 2012

Да, просто добавьте один порядок за пунктом за другим: порядок по X, порядок по Y, ...

Если вы любите лямбду, проверьте функции OrderBy() и ThenBy().

...