Linq在ORDER BY中自定义排序,其余由asc排序

Dan*_*des 2 linq vb.net

我有一个带有companyNames的字符串列表,

1. CompanyA
2. CompanyB
3. CompanyA
4. CompanyC
Run Code Online (Sandbox Code Playgroud)

我的方法是:

 Dim companyNames = From cp In companyList 
                    Order By If(cp.CompanyName = 'CompanyC', 1, 0) Descending
                    Select cp.CompanyName
                    Distinct
Run Code Online (Sandbox Code Playgroud)

但我得到了结果:

1. CompanyC
1. CompanyB
2. CompanyA
Run Code Online (Sandbox Code Playgroud)

我想在设置"CompanyC"之前按公司名称订单保留订单.,我想要以下结果

 1. CompanyC
 2. CompanyA
 3. CompanyB
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 5

您需要另一个订单CompanyName Ascending:

Dim companyNames = 
    From cp In companyList 
    Order By If(cp.CompanyName = "CompanyC", 1, 0) Descending, CompanyName Ascending
    Select cp.CompanyName
    Distinct
Run Code Online (Sandbox Code Playgroud)