2011-10-24 7 views
4

Inは、このメソッドがコレクションのコピーを返すか、すべての参照を読み込むことなく、何らかの方法で元のコレクションをラップするReadOnlyCollectionのインスタンスを返すかどうかを確認します。AsReadOnlyはコレクションのコピーを返しますか?

私はそれがメモリスペースを浪費するかどうか、私のインスタンスにすべてのポインタをコピーするかどうかを理解する必要がありますか?

ありがとうございました。

+0

ポインタのコピーではなく、オブジェクトのコピーが参照/参照されている... ;-) –

+1

http://msdn.microsoft.com/en-us/ /library/e78dcd75.aspx '読み取り専用のコレクションは、単にラッパーを含むコレクションです。' – wiero

+2

時々、文書を読む必要があります:-) – GianT971

答えて

6

あなたがここに見つけることができるよう:List(Of T).AsReadOnly Method

は このラッパー経由(Tの)リストを公開し、(Tの)リストへの変更を防ぐために。

読み取り専用のコレクションは、コレクションの変更を防止するラッパー の単なるコレクションです。したがって、基になるコレクションに が変更された場合、読み取り専用のコレクションにはこれらの変更が反映されます( )。

このメソッドはO(1)操作です。あなたがソースコレクションを変更した場合、最後の文の中から

は、彼らは私がこのラッパーは、任意のオブジェクトを再割り当ていますが、また、あなたの質問に記載し何をしないと信じて、読み取り専用のコレクションは、それらの変更が反映されますと言います。

1

List<T>AsReadOnlyメソッドは、既存のList<T>ReadOnlyCollection<T>ラッパーを返します。 List<T>

関連する問題