ここまで読んで、なぜそうでないのか理解できませんIList<T>
。しかし、なぜ IList なのか? 追加しても意味がないので、単に IEnumerable にするか、または本当にインデクサーが必要な場合 (理由はありません)、ReadOnlyCollection を使用します。
3 に答える
をご覧くださいNotifyCollectionChangedEventArgs
。
NewStartingIndex
とプロパティが ありOldStartingIndex
ます。
したがって、デザインはインデックス可能なコレクションに基づいています。これは、たとえばリストボックスに便利だと思います。
リストの仮想化シナリオでは、インデックス作成が望ましいです。
IList
要素へのインデックス付きアクセスを提供する最も単純なコレクション インターフェイスです。ReadOnlyCollection
具象クラスであるため、実装者にとってより制限的です。
コンポーネントの名前でコンポーネントのルックアップを頻繁に実行する必要がある場合INotifyCollectionChanged
(プロパティが文字列としてそこに格納されているため)、文字列を受け取るインデクサーが不可欠であると思います (そして、基になる構造はおそらくHashTable のようなものです)。
MSDN Web ページでは、次の推奨事項を見つけることができます。
高度なシナリオがあり、独自のコレクションを実装する必要がある場合は、IList の使用を検討してください。IList は、インデックスによって個別にアクセスできるオブジェクトの非ジェネリック コレクションを提供し、最高のパフォーマンスを提供します。