SSブログ

スポンサーリンク


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());

nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0



スポンサーリンク