2012-01-16 87 views
1

为了我有以下几点:LINQ的GROUP BY和由多个条件

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?通过X,以便由Y次,......

如果你看中的拉姆达检查OrderBy()ThenBy()功能:

+0

[如何使用VB.Net lambda表达式按多列排序](http://stackoverflow.com/questions/1743661/how-to-order-by-multiple-columns-using-vb-net -lambda表达式) –

回答

0

是的,仅仅通过第陆续增加一个数量级。

+0

我试着添加第二个命令,并且我得到c没有声明或在当前范围内。任何想法为什么我没有通过上下文访问c的顺序? – Steffan