リスト(C#)を複数のフィールドで並べ替えますか?[重複] 質問する

リスト(C#)を複数のフィールドで並べ替えますか?[重複] 質問する

C# のオブジェクトのリストを、1 つのフィールドだけでなく、複数のフィールドで順序付けたいと考えています。たとえば、2 つの属性 A と B を持つ X というクラスがあり、次の順序でオブジェクトがあるとします。

オブジェクト1 => A = "a"、B = "h"
オブジェクト2 => A = "a"、B = "c"
オブジェクト3 => A = "b"、B = "x"
オブジェクト4 => A = "b"、B = "b"

まず A 属性でリストを並べ替え、それらが等しい場合は B 要素で並べ替えたいので、順序は次のようになります。

「あ」「は」
「ち」「ば」
「ば」「ば」
「ば」「×」

私の知る限り、OrderBy メソッドは 1 つのパラメータで順序付けます。

質問: C# リストを複数のフィールドで並べ替えるにはどうすればよいでしょうか?

ベストアンサー1

使用ThenBy

var orderedCustomers = Customer.OrderBy(c => c.LastName).ThenBy(c => c.FirstName)

MSDN を参照してください:http://msdn.microsoft.com/en-us/library/bb549422.aspx

おすすめ記事