2011-12-04 5 views
0

hereを読み上げると、私はなぜそれがIList<T>ではないのかと思います。 しかし、なぜIListは?それは意味をなさないので、IEnumerableだけでなく、本当にインデクサーが必要な場合(理由はありません)、ReadOnlyCollectionを使用してください。なぜINotifyCollectionChangedがIListを使用するのですか

答えて

2

NotifyCollectionChangedEventArgsをご覧ください。

これは、NewStartingIndexOldStartingIndexです。

デザインがインデックス可能なコレクションに基づいているので、これはリストボックスなどに便利です。

0

私はINotifyCollectionChangedの場合、プロパティが文字列として格納されているため、コンポーネントの名前をルックアップする必要があることが多いため、文字列を取り込むインデクサを持つことが不可欠です基礎となる構造はおそらくHashTableのようなものでなければなりません)。 MSDN webpage

次の勧告を見つけることができます:あなたは、高度なシナリオを持って、自分の コレクションを実装する場合は、そのことのできるオブジェクトの非ジェネリック コレクションを提供するIListを、使用することを検討

を個別にインデックスでアクセスし、 が最高のパフォーマンスを提供します。

1

リスト仮想化のシナリオでは索引付けが望ましいです。

IListは、要素へのインデックス付きアクセスを提供する最もシンプルなコレクションインターフェイスです。 ReadOnlyCollectionは具体的なクラスであり、実装者にはるかに制限されています。

関連する問題