- PR -

IList の並べ替えについて

1
投稿者投稿内容
Pluto
常連さん
会議室デビュー日: 2002/07/01
投稿数: 40
投稿日時: 2004-06-09 17:04
こんにちは。

IList の並べ替えを実行しようとした場合、どのようにしたら宜しいのでしょうか?

ASP.NET において、DataGrid の DataSource に IList を指定して、その後、
SortCommand により並べ替えを実行しようとした場合、うまく実行できません...
(IList はキャッシュしています)


どなたかご教示下さいますようお願いします。

かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-06-09 17:25
IListはインターフェースです。DataSourceに割り当てている、IListの実装は何ですか?
ArrayListなら、ArrayList#Sort()というメソッドがあります。

そうでないなら、自ら、ソート処理を実装する必要があるでしょう。
Pluto
常連さん
会議室デビュー日: 2002/07/01
投稿数: 40
投稿日時: 2004-06-09 17:42
かずくん様、早速のご返信ありがとうございます。

ご指摘のとおり IList の実装は ArrayList であり、その Sort() メソッドを
使用して並べ替えを実行しようとしましたが、どうもうまく実行できません...

例えば、IList (ArrayList) に 5 つの項目 (列) があり、1 列目 (string)
の並べ替えを実行しようとした場合、どのようにしたらよいのでしょうか?

ArrayList arrayList = (ArrayList)Cache["DataSource"];
arrayList.Sort(?);

この Sort() メソッドのパラメータはどのように指定すれば宜しいのでしょうか?
お手数ですが、ご教示下さいますようお願いします。

なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-06-09 17:47
引用:

cowboyさんの書き込み (2004-06-09 17:42) より:
例えば、IList (ArrayList) に 5 つの項目 (列) があり、1 列目 (string)
の並べ替えを実行しようとした場合、どのようにしたらよいのでしょうか?

ArrayList arrayList = (ArrayList)Cache["DataSource"];
arrayList.Sort(?);

この Sort() メソッドのパラメータはどのように指定すれば宜しいのでしょうか?


どう指定したらよいかと聞かれると、「一列目で比較を行うIComparerの実装を作成して渡せばよいでしょう」となるのですが、意味分かります?
Pluto
常連さん
会議室デビュー日: 2002/07/01
投稿数: 40
投稿日時: 2004-06-09 17:57
なちゃ様、ご返信ありがとうございます。

ご指摘の 「一列目で比較を行う IComparer の実装を作成して渡せばよいでしょう」
というものですが、私自身がいまいち良く理解できていないのか、並べ替えが正常に
行えません...

お手数ですが、宜しければサンプル的なものを記していただけないでしょうか?
宜しくお願いします。

platini
大ベテラン
会議室デビュー日: 2002/12/03
投稿数: 193
投稿日時: 2004-06-09 18:07
>並べ替えが正常に行えません...
元のデータに対して
(1)並べ替えが一切行われていない   のか
(2)元のデータに対して、とにかく何らかの違う順序にはなっているが
   期待している順序になっていない  のか

現象を明記した上で、
現在のソースを記したほうが、みんながアドバイスしやすいでしょう。
アティ
ベテラン
会議室デビュー日: 2003/08/14
投稿数: 91
お住まい・勤務地: KANAGAWA
投稿日時: 2004-06-09 18:19
Googleで検索すればありますよ?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-06-10 08:28
引用:

cowboyさんの書き込み (2004-06-09 17:57) より:

ご指摘の 「一列目で比較を行う IComparer の実装を作成して渡せばよいでしょう」
というものですが、私自身がいまいち良く理解できていないのか、並べ替えが正常に
行えません...

お手数ですが、宜しければサンプル的なものを記していただけないでしょうか?
宜しくお願いします。


 どのように実装したか、それを示した方が、あなたが理解できていることをふまえて、説明できます。


 単に「動くもの」が欲しいなら、googleで検索すれば、サンプルソースはいくらでも見つかるでしょう。
 また、MSDNの
ArrayList.Sortメソッド
の説明にサンプルも載っています。
1

スキルアップ/キャリアアップ(JOB@IT)