我有一份国家清单.我想按字母顺序排序,除了我想先放的两个国家

Eri*_*c B 0 c# linq

我有一份国家清单.我想按字母顺序排序,除了我想先放的两个国家.有没有一种简单的修改方法

from country in Countries
orderby country.Name
select country
Run Code Online (Sandbox Code Playgroud)

完成这个?

Tim*_*ter 10

你可以使用这个技巧:

var ordered = Countries.OrderByDescending(c => ConditionHere)
                       .ThenBy(c => c.Name);
Run Code Online (Sandbox Code Playgroud)

例如:

var priorCountries = new[]{ "Italy", "France" };
var ordered = Countries.OrderByDescending(c => priorCountries.Contains(c.Name))
                       .ThenBy(c => c.Name);
Run Code Online (Sandbox Code Playgroud)


Tim*_* S. 5

试试这个:

var specialCountries = new[] { "America", "England" };

from country in Countries
orderby specialCountries.Contains(country.Name) descending, country.Name
select country
Run Code Online (Sandbox Code Playgroud)

如果这不是LINQ到对象,您可能需要稍微改写它才能使它工作,例如这可能有效

from country in Countries
orderby (country.Name == "America" || country.Name == "England") descending, country.Name
select country
Run Code Online (Sandbox Code Playgroud)