C#Interop Outlook联系人未遍历所有项目

问题描述 投票:0回答:1

我想删除所有具有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();

这会获取所有联系人,但是我的问题是,它不会遍历所有项目。看这张照片:

My Code after Executing

您可以看到,它会遍历一半的项目。但是我不知道为什么。

任何人都知道该怎么办?

我想删除所有具有CustomerID的Outlook联系人。因此,我认为通过Interop获取所有联系人并遍历它们并检查他们是否具有我想要的CustomerID会很容易。所以这个...

c# interop
1个回答
0
投票

[就像Yosh在他的评论中写道,searchFolder Items在迭代本身中发生了变异。因此,我将实体删除到集合中,并在迭代后将其删除。我想删除所有带有CustomerID的Outlook联系人。因此,我认为通过Interop获取所有联系人并进行遍历并检查他们是否具有我想要的CustomerID会很容易。

所以这是我编码的代码:

© www.soinside.com 2019 - 2024. All rights reserved.