2009-12-15 44 views
2

昏暗BigCollection作爲新集合 昏暗SmallCollection作爲新集合 SmallCollection.Add(的 「Hello World」) BigCollection.Add(SmallCollection)對象中的對象是否可以持久? (VB .NET)

MsgBox(BigCollection(1)(1)) 'shows "Hello World 
SmallCollection.Clear() 
MsgBox(BigCollection(1)(1)) 'ERROR (Collection is empty) 

我想,一旦我把東西BigCollection停留在那裏,我不希望它從外面改變。我希望能夠清除SmallCollection,但它不應該在BigCollection中清除。有任何想法嗎? 也許這是不好的做法,我不在這裏.net大師呢:)

謝謝!

回答

2

如果你想要一個不應該改變的集合,那麼你應該通過ReadOnlyCollection(Of T)來暴露它。雖然從標準Collection類型創建一個語法的語法相當尷尬。

Dim completeSmall As New ReadOnlyCollection(Of Object)(SmallCollection.Cast(Of Object)) 

,如果你有List(Of Object)而不是Collection開始了它會更容易些。最後的語法有點容易閱讀

Dim SmallCollection As New List(Of Object)() 
... 
Dim completeSmall As New ReadOnlyCollection(Of Object)(SmallCollection)