我正在尝试创建集合的副本,然后删除原始集合。 我使用For Each循环迭代原始集合,然后将对象添加到新集合中。 但是一旦我从原始集合中删除对象,我就无法使用新创建的集合。 新创建的集合中的对象计数是正确的
rMSPCalendar.Exceptions是MSProject为每个日历提供的集合 在此代码之后,如果遍历rMSPCalendarExceptions,我会收到错误“Object required”
Dim rMSPCalendarExceptions As New Collection
Dim exception As Object
rMSPCalendar.Exceptions(1).
For Each exception In rMSPCalendar.Exceptions
rMSPCalendarExceptions.Add exception
exception.Delete
Next exception
答案 0 :(得分:0)
不是使用通用Collection
对象而只使用Exception的名称(例如默认属性)填充它,而是使用类型为MSProject.Exception
的List:
Dim Exceptions As New List(Of MSProject.Exception)
For Each Ex As MSProject.Exception In rMSPCalendar.Exceptions
Exceptions.Add(Ex)
Ex.Delete()
Next
For Each Ex In Exceptions
' do something with the exception...
Console.WriteLine(Ex.Name & vbTab & Ex.Start & vbTab & Ex.Finish)
Next
顺便说一句:由于Exception一词指的是原生的vb.net对象,我建议你将变量更改为更明确 - 也许是CalExceptions。