0

私はリストを持っています:

List<User> users = getUsers();

Userオブジェクトには、並べ替えたい2つのプロパティがあります。

IsActive
Name

最初にIsActiveで並べ替え、次に名前で並べ替えます。

そのため、アクティブユーザーがリストの一番上に表示され、名前で並べ替えられます。次に、非アクティブなすべてのユーザーが一覧表示されます(アルファベット順にソートされます)。

これは可能ですか、それともリストを分割してからマージする必要がありますか?

このリストには10​​0未満のアイテムがあるため、パフォーマンスは実際には問題になりません。

4

2 に答える 2

12

OrderByとを使用するだけThenByです。ティム・シュメルターの発言に感謝します。を使用するOrderByと、リストの一番上にあるユーザーが表示さIsActive == falseれます。

var users = getUsers().
    OrderByDescending(u => u.IsActive).
    ThenBy(u => u.Name).
    ToList();

usingディレクティブに追加することを忘れないでください:

using System.Linq;
于 2013-01-15T16:25:16.700 に答える
2
var result = users.OrderByDescending(z => z.IsActive).ThenBy(z => z.Name);
于 2013-01-15T16:25:20.240 に答える