- - PR -
IList の並べ替えについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-06-09 17:04
こんにちは。
IList の並べ替えを実行しようとした場合、どのようにしたら宜しいのでしょうか? ASP.NET において、DataGrid の DataSource に IList を指定して、その後、 SortCommand により並べ替えを実行しようとした場合、うまく実行できません... (IList はキャッシュしています) どなたかご教示下さいますようお願いします。 | ||||
|
投稿日時: 2004-06-09 17:25
IListはインターフェースです。DataSourceに割り当てている、IListの実装は何ですか?
ArrayListなら、ArrayList#Sort()というメソッドがあります。 そうでないなら、自ら、ソート処理を実装する必要があるでしょう。 | ||||
|
投稿日時: 2004-06-09 17:42
かずくん様、早速のご返信ありがとうございます。
ご指摘のとおり IList の実装は ArrayList であり、その Sort() メソッドを 使用して並べ替えを実行しようとしましたが、どうもうまく実行できません... 例えば、IList (ArrayList) に 5 つの項目 (列) があり、1 列目 (string) の並べ替えを実行しようとした場合、どのようにしたらよいのでしょうか? ArrayList arrayList = (ArrayList)Cache["DataSource"]; arrayList.Sort(?); この Sort() メソッドのパラメータはどのように指定すれば宜しいのでしょうか? お手数ですが、ご教示下さいますようお願いします。 | ||||
|
投稿日時: 2004-06-09 17:47
どう指定したらよいかと聞かれると、「一列目で比較を行うIComparerの実装を作成して渡せばよいでしょう」となるのですが、意味分かります? | ||||
|
投稿日時: 2004-06-09 17:57
なちゃ様、ご返信ありがとうございます。
ご指摘の 「一列目で比較を行う IComparer の実装を作成して渡せばよいでしょう」 というものですが、私自身がいまいち良く理解できていないのか、並べ替えが正常に 行えません... お手数ですが、宜しければサンプル的なものを記していただけないでしょうか? 宜しくお願いします。 | ||||
|
投稿日時: 2004-06-09 18:07
>並べ替えが正常に行えません...
元のデータに対して (1)並べ替えが一切行われていない のか (2)元のデータに対して、とにかく何らかの違う順序にはなっているが 期待している順序になっていない のか 現象を明記した上で、 現在のソースを記したほうが、みんながアドバイスしやすいでしょう。 | ||||
|
投稿日時: 2004-06-09 18:19
Googleで検索すればありますよ?
| ||||
|
投稿日時: 2004-06-10 08:28
どのように実装したか、それを示した方が、あなたが理解できていることをふまえて、説明できます。 単に「動くもの」が欲しいなら、googleで検索すれば、サンプルソースはいくらでも見つかるでしょう。 また、MSDNの ArrayList.Sortメソッドの説明にサンプルも載っています。 |
1