2012-02-21 11 views
7

今日、私はジレンマに遭遇しました。ReadOnlyCollection<T>ReadOnlyCollectionBuilder<T>の違いは何ですか?.NetのReadOnlyCollection <T>とReadOnlyCollectionBuilder <T>の違いは何ですか?

ReadOnlyCollection<T>オブジェクトでは、アイテムを追加したり削除したりすることはできません。

ReadOnlyCollectionBuilder<T>オブジェクトでは、アイテムを追加したり削除したりすることができます。

ReadOnlyCollectionBuilder<T>オブジェクトにアイテムを追加したり削除したりすることができるのであれば、その名前はなぜ読み取り専用ですか?

答えて

12

the documentationによると、ReadOnlyCollectionBuilderは、読み取り専用コレクションのビルダーに過ぎません。ビルダーは変更可能ですが、小さな範囲でのみ使用されるという考えがあります。ビルダーを作成し、要素の負荷を追加してから、ToReadOnlyCollectionを呼び出して、効率的にデータの読み取り専用ビューを作成します。 (これにより、ビルダーがリセットされるため、作成後に読み取り専用コレクションに変更が生じる可能性はありません。