Vb.net Linq按ORDER BY自定义排序,其余结果按asc排序

Vb.net Linq按ORDER BY自定义排序,其余结果按asc排序,vb.net,linq,Vb.net,Linq,我有一个公司名称的字符串列表 1. CompanyA 2. CompanyB 3. CompanyA 4. CompanyC 我的做法是: Dim companyNames = From cp In companyList Order By If(cp.CompanyName = 'CompanyC', 1, 0) Descending Select cp.CompanyName

我有一个公司名称的字符串列表

1. CompanyA
2. CompanyB
3. CompanyA
4. CompanyC
我的做法是:

 Dim companyNames = From cp In companyList 
                    Order By If(cp.CompanyName = 'CompanyC', 1, 0) Descending
                    Select cp.CompanyName
                    Distinct
但我得到的结果是:

1. CompanyC
1. CompanyB
2. CompanyA
在将“CompanyC”设置为第一个之前,我想按companyName order保留订单。 ,我想要下面的结果

 1. CompanyC
 2. CompanyA
 3. CompanyB

您需要通过
公司名称升序
再次订购:

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

对不起,我一点也不明白你在说什么。你想要原始顺序,只把
CompanyC
作为第一个元素吗?@pikoh我想要按字母顺序排列asc,在CompanyC之前。那么你为什么不把所有列表按升序排列,然后将
CompanyC
移动到第一个索引?我想那会简单得多