2011-12-20 17 views
3

になるように、特定の文字列を強制的に:メニューは、タイトルの順にソートされているようLINQのOrderBy句 - 私は、次のLINQのOrderBy句を持って常にトップ

Menu[] sorted = ret.OrderBy(menu => menu.Title).ToArray(); 

これは、素晴らしい作品。

しかし、タイトルが「お気に入り」である場合、私は常にそれが配列の最初の要素であることを望みます。

これを行う最も簡単な方法は何ですか?ありがとう!

答えて

11

私が言うと思います:

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

を私はあなたが最初の文 – Nagg

+0

いやにOrderByDescendingを使うべきだと思うか、単に行う代わりに、 '=' '==' - いずれにせよ、これは素晴らしい作品! –

+1

いいえ、それは 'true'を' 1'と解釈しています。 'OrderBy'は最低から最高まで、' 0'から '1'まで、' false'から 'true'までです。 – hvd