Read-only collection...

L

Lucvdv

Maybe a dumb question (if those exist), but how do you...

Private m_Stuff As New System.Collections.ArrayList

Public ReadOnly Property Stuff() As System.Collections.ArrayList
Get
Return m_Stuff
End Get
End Property

disable the Add and AddRange methods (or something similar), so the
property becomes a read-only array/list in addition to being one that can't
be replaced?

Implement enumeration yourself, or is there an easier method?
 
L

Larry Lard

Lucvdv said:
Maybe a dumb question (if those exist), but how do you...

Private m_Stuff As New System.Collections.ArrayList

Public ReadOnly Property Stuff() As System.Collections.ArrayList
Get
Return m_Stuff
End Get
End Property

disable the Add and AddRange methods (or something similar), so the
property becomes a read-only array/list in addition to being one that can't
be replaced?

Implement enumeration yourself, or is there an easier method?

The Framework authors have done this for you. ArrayList (in common with
many other collections, I think) has a Shared method called ReadOnly
which:

Returns a list wrapper that is read-only.

Overload List

Returns a read-only ArrayList wrapper.

[Visual Basic] Overloads Public Shared Function ReadOnly(ArrayList) As
ArrayList

Returns a read-only IList wrapper.

[Visual Basic] Overloads Public Shared Function ReadOnly(IList) As
IList
 
C

Claes Bergefall

In 2005 use the generic ReadOnlyCollection(Of T) class
In 2003 make your own by inheriting ReadOnlyCollectionBase

/claes
 
L

Lucvdv

The Framework authors have done this for you. ArrayList (in common with
many other collections, I think) has a Shared method called ReadOnly
which:

Thanks.

I expected something like that, but didn't dig deep enough. I went looking
for a 'readonly' or similar method/property in intellisense, and didn't see
it because it doesn't show up unless you select the "all" tab in 2005 or go
looking for it via the type itself instead of through an instance.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top