スポンサーリンク
C#の豆知識 「C#でのArrayListのソート」 [パソコン・ネット]
C#でのArrayListのソート方法を記します。
下記の例は、ArrayListの要素にHashtableがあり、
そのHashtable内の項目でソートする方法です。
まず、ArrayListのSortメソッドに渡すIComparerクラスを作成します。
IComparerクラスを継承します。
IComparer.Compareメソッドで、ArrayList内の要素の比較をします。
自分より大きい場合は1を、同じ場合は0を、小さい場合は-1を返します。
それによって、ArrayListをソートします。
// 区分、コードの比較メソッド public class CompareKbnCdClass : IComparer { int IComparer.Compare( Object x, Object y ) { Hashtable htX = (Hashtable)x; Hashtable htY = (Hashtable)y; CaseInsensitiveComparer cc = new CaseInsensitiveComparer(); int intReturn = 0; //キー(区分) int intCase1 = cc.Compare(htX["strButenGroupKbn"] , htY["strButenGroupKbn"]); //キー(コード)) int intCase2 = cc.Compare(htX["strButenGroupCd"] , htY["strButenGroupCd"]); //区分が等しくない場合 if(intCase1 != 0) { //区分の比較結果を格納 intReturn = intCase1; } //区分が等しい場合 else { //コードが等しくない場合 if(intCase2 != 0) { //コードの比較結果を格納 intReturn = intCase2; } } return intReturn; }
上記で作成したクラスをSortメソッドに渡します。
これで、ArrayList内の要素がソートされます。
//区分、コードで昇順にソートする List.Sort(new CompareKbnCdClass());
Facebook コメント
スポンサーリンク
コメント 0