- - PR -
Listのソートの方法が理解できません
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-16 02:11
ソートはいろいろと利用するシーンが多いので、sort メソッドの使い方については、 きちんと覚えておく必要があるだろうとは思っていたのですが、思ったより簡単で多 様性もあってホッとしてます 前メインで開発していた VB6 の頃は、必要に応じてSortメソッドを実装させるのに 内部で自作した ShelSort 関数を共通で使いまわしてたりしました。 バイナリサーチも自作してたんですが、今は最初からメソッドとして実装されてい るんですね。便利になりました〜 | ||||||||||||
|
投稿日時: 2006-05-16 02:16
ここで質問する前に調べていたら、どこかでデリゲートで処理するみたいなことが書 いてあった訳ですが、こういうことだったんですね。 #今ひとつデリゲートが理解できていない .net 初心者は、上記に関して調べたくて #ウズウズしているが、もう寝る時間・・・zzz | ||||||||||||
|
投稿日時: 2006-05-16 07:44
というかもっと言うならIndexSortなんてメソッド作るななんですけどもね。Genericに行こうよ。
delegateはそんなに難しく考える必要もない。
これが理解できるならパラメータにdelegateインスタンスを渡すことが出来ることもわかるはず。 といってもさっきのコードは色々省略しているから、省略せずに書けば、
になる。匿名delegateはパラメータの型で推論してくれるので省略しているだけで、実際はComparison<T> delegate型インスタンスを作ってパラメータに渡しているだけ。それを使って並び替えるメソッドがSort。 ちなみに、3.0ならさらに短く
でおkな予定(俗にいうλ式。ちょっと前に新しいやつが出たので変わってるかも)。 # 後で気づいたけどy.Index - x.Indexはoverflowする可能性あるので # もとのままCompareTo使ってくださいすいません | ||||||||||||
|
投稿日時: 2006-05-16 09:38
そうですね。前記の書き方ができれば、その場で簡単に実行できますもんね。
既に何度か使ってはいるんですが、イベントちっくな使い方しか経験がなくて、今回 のようにデリゲートの参照を渡すというのは初めてで目から鱗でした。 とは書いていますが、こんなに丁寧にご説明いただいたのに、まだ理解できていませ ん) しかし、コードのサンプルも書いていただきましたので、実際の動きを確認しながら、 検証して行きたいと思います。 本当に感謝です( ̄人 ̄)オガンデミル... | ||||||||||||
|
投稿日時: 2006-05-16 09:53
僕も勉強になりました。
そうか、匿名デリゲートってこう使うのか まだ2003から抜け出せません… |