我想删除所有具有CustomerID的Outlook联系人。因此,我认为通过Interop获取所有联系人并进行遍历并检查他们是否具有我想要的CustomerID会很容易。
所以这是我编码的代码:
var app = new Application(); var folderContacts = app .ActiveExplorer() .Session .GetDefaultFolder(OlDefaultFolders.olFolderContacts); var searchFolder = folderContacts.Items; foreach (ContactItem foundContact in searchFolder) if (foundContact.CustomerID == myCustomerIdAsString) foundContact.Delete();
这会获取所有联系人,但是我的问题是,它不会遍历所有项目。看这张照片:
您可以看到,它会遍历一半的项目。但是我不知道为什么。
任何人都知道该怎么办?
我想删除所有具有CustomerID的Outlook联系人。因此,我认为通过Interop获取所有联系人并遍历它们并检查他们是否具有我想要的CustomerID会很容易。所以这个...
[就像Yosh在他的评论中写道,searchFolder Items在迭代本身中发生了变异。因此,我将实体删除到集合中,并在迭代后将其删除。我想删除所有带有CustomerID的Outlook联系人。因此,我认为通过Interop获取所有联系人并进行遍历并检查他们是否具有我想要的CustomerID会很容易。
所以这是我编码的代码: