我想删除集合中的所有元素,因为我没有看到.RemoveAll
或这样,所以我使用下面的代码。
int number = addressBook.Items.Count;
System.Collections.IEnumerator enumerator = ...
while (enumerator.MoveNext())
{
target = enumerator.Current as Outlook.ContactItem;
target.Delete();
}
但是,我注意到集合中剩余元素的数量大约是程序每次运行的一半。我的结论是它.Delete()
本身会跳到下一个元素,这意味着.MoveNext()
循环的条件会跳到下一个元素之后。
所以我尝试如下重置枚举器。
int number = addressBook.Items.Count;
System.Collections.IEnumerator enumerator = ...
while (enumerator.MoveNext())
{
target = enumerator.Current as Outlook.ContactItem;
target.Delete();
enumerator.Reset();
}
但是,当我检查时,.Count
我发现在删除最后一个元素并重置枚举器之后,剩余的元素数仍然为 1。当然,我遇到了一个例外。
我在这张照片中缺少什么?我知道这不是一个错误,因为它会在很久以前被报告和解决......