Dim BigCollection As New Collection Dim SmallCollection作为新系列 SmallCollection.Add(“Hello World”) BigCollection.Add(SmallCollection)
MsgBox(BigCollection(1)(1)) 'shows "Hello World
SmallCollection.Clear()
MsgBox(BigCollection(1)(1)) 'ERROR (Collection is empty)
我想要的是,一旦我在BigCollection中放了一些东西,它就会留在那里,我不希望它可以从外面改变。我希望能够清除SmallCollection但不应该在BigCollection中清除它。有任何想法吗? 也许这是不好的方法,我不是这里的.net大师;)
谢谢!
答案 0 :(得分: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)