Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ OrderBy子句-强制某些字符串始终位于顶部_C#_.net_Linq - Fatal编程技术网

C# LINQ OrderBy子句-强制某些字符串始终位于顶部

C# LINQ OrderBy子句-强制某些字符串始终位于顶部,c#,.net,linq,C#,.net,Linq,我有以下LINQ OrderBy条款: Menu[] sorted = ret.OrderBy(menu => menu.Title).ToArray(); 这非常有效,因为菜单是按照标题的顺序排序的 但是,如果标题恰好是“Favorites”,我希望它始终是数组中的第一个元素,无论发生什么 最简单的方法是什么?谢谢 我想说: Menu[] sorted = ret.OrderBy(menu => menu.Title != "Favorites")

我有以下LINQ OrderBy条款:

Menu[] sorted = ret.OrderBy(menu => menu.Title).ToArray();
这非常有效,因为菜单是按照标题的顺序排序的

但是,如果标题恰好是“Favorites”,我希望它始终是数组中的第一个元素,无论发生什么

最简单的方法是什么?谢谢

我想说:

Menu[] sorted = ret.OrderBy(menu => menu.Title != "Favorites")
                   .ThenBy(menu => menu.Title)
                   .ToArray();

我认为你应该在第一句话中使用OrderByDescending是的,或者只是做一个
=
而不是
==
-无论哪种方式,这都非常有效!不,它将
true
解释为
1
:一个
OrderBy
从最低到最高,从
0
1
,从
false
true