続 FastPropertyComparer
id:siokoshou:20070505 の FastPropertyComparer ですが、いろいろ問題があるんでもっとまともなのをそのうち出します。
気づいている問題点
- IComparable
または IComparable じゃない T型だと例外発生 → ToString() して比較する処理を復活させた - string の比較が遅い → string の比較には StringComparer がお勧めとMSDNライブラリにも書いてある
- Tが値型だと例外発生(そういう使い方はあまり意味がないけど・・・) → NyaRuRuさんにおそわった Constrained の出番
- Compare の引数の null チェック漏れ → 追加する ← 今ここ
- (小さな問題) U がintのときに2倍程度遅い → 悔しいので改善する
Expression Tree で挑戦したかったはずなのに、小さいコードだし、コンテキストに応じて変わる部分もごく少ないのでそのままILでいろいろ書いてしまった。あと、昨日追加で訂正した10倍遅いってのがまた計り間違いで(--;、string.CompareOrdinal と Comparer
ちなみに DataGridView から SortableBindingList