Listの並び替え
C#でListの並び替えを行う際の定番の方法は、
詰め替え用のオブジェクトをもう一つ用意して
forループの中で値の比較を行い、詰め替えを行うことです。
ここでは、Array.Sortメソッドを使って、任意の方法で並び替えを行う方法をご紹介します。
並びえるオブジェクトは
List<Dictionary<string,object>>です。
特定のキーの値によって並び替えを行います。
htmlList.Sort(delegate(Dictionary<string, object> a1, Dictionary<string, object> a2) { return CommonUtility.Convert.ConvertUtility.ConvertStringZeroToInt(a1["Order"]) - CommonUtility.Convert.ConvertUtility.ConvertStringZeroToInt(a2["Order"]); });
sortメソッドの内部をdelegateで定義することで、
任意の比較ルールを各レコードの比較に適用します。
CommonUtility.Convert.ConvertUtility.ConvertStringZeroToInt は自社共通関数で、
値を数値に変換するものです。
"Order"というキーの値順に並び替えを行います。
内部的にはループをまわして処理をしていると思われますが、
割と簡単に書けますし、delegate利用の勉強にもなります。
この記事へのコメントはこちら