1. ホーム
  2. c#

[解決済み] リスト(C#)を多くのフィールドで並べる?重複

2022-07-15 08:02:45

質問

C#でオブジェクトのListを1つだけでなく、多くのフィールドで並べ替えたい。例えば、Xというクラスがあり、A,Bという2つのAttributeを持っていて、以下のようなオブジェクトがあり、この順番で並べるとします。

object1 => A = "a", B = "h"

object2 => A = "a"、B = "c"。

object3 => A = "b", B = "x"

object4 => A = "b"、B = "b"

で、リストをA属性から順番に並べ、イコールになったらB要素から並べたいので、順番としては

"a" "c"

"a" "h"

"b" "b"

"b" "x"

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

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

どのように解決するのですか?

使用方法 ThenBy :

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

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