2009年9月29日火曜日

ObservableCollectionにはAddRangeがない

たくさんのアイテムを一度に追加したいときに、
普通にAddすると1個ごとに通知が行きそうだけど
AddRangeがないのでどうしたらいいのかな?
自分で通知を止める仕組みを入れる必要があるのかな?
と思っていたら、以下の記事を見つけた。

http://blogs.microsoft.co.il/blogs/tamir/archive/2008/05/13/how-to-addrange-removerange-in-silverlight-observablecollection-lt-t-gt.aspx

書かれているソースコードは自分がやろうと思っていたこととほぼ同じなんだけど、
簡単に書くと、少ないうちは効果あるけど、数が多くなると逆に遅くなるよってことらしい。

遅くなる原因がこの説明だけだといまいち理解できなかったけど、
とりあえず、今はパフォーマンスで困ってないので、普通にAddで行くことにします。

P.S.
Resetのあたりを工夫するとどうにかできないかなーと思ったけど、
それはまた時間ができたときに。

0 件のコメント:

コメントを投稿