如何使用LINQ对集合进行排序,以便首先显示特定字符​​串

Nib*_*Pig 1 .net c# linq

我有一个字符串值数组, { "Jools", "Jops", "Stoo", "RJ" }

我想订购它,这"Jops"是列表中的第一个,但我不关心其他值的顺序.它也可能是多个值,因此所有实例"Jops"应首先出现.

使用LINQ有一个简单的方法吗?

Lia*_*ath 10

关于什么

var values = new string[] { "Jools", "Jops", "Stoo", "RJ" };
var sortedValues = values.OrderByDescending(s => s.Equals("Jops"));
Run Code Online (Sandbox Code Playgroud)

只需根据您是否想要的价值进行排序.

编辑在下面的评论中提到了一个非常有价值的观点,其余项目未按此机制排序.为了保证他们的订单使用ThenBy()方法.

  • 我注意到这将使其余的非确定性,以解决额外的`ThenBy`可以对其余部分进行排序.或者将它全部放在对`OrderBy`的一次调用中,使用带有`IComparer`的重载. (4认同)