Нужен индекс результата Outlook.Items.Find () в коллекции Outlook.Items - PullRequest
0 голосов
/ 28 марта 2011

Есть ли что-либо в возвращаемом объекте из Items.Find (), которое указывает положение указанного объекта в коллекции, для которой вызывался Find ()?

Outlook.Application App = new Outlook.Application();
Outlook.MAPIFolder contactFolder = App.Session.GetDefaultFolder(
    Outlook.OlDefaultFolders.olFolderContacts);
Outlook.Items contactItems = contactFolder.Items;

Outlook.ContactItem matchItem = contactItems.Find(
    "@SQL=urn:schemas:contacts:cn LIKE '" + searchString + "%'");

На данный момент мне нужен индекс matchItem в коллекции contactItems. Это возможно?

1 Ответ

0 голосов
/ 28 марта 2011

Ссылка, на которую указывает matchItem, должна быть равна ссылке в коллекции Предметов. Таким образом, вы должны иметь возможность просмотреть коллекцию Предметов и найти индекс по ссылочному равенству. Вам понадобятся предметы в строго типизированном списке:

//Change how you're accessing the items of this folder
//the new list should have the same references as the Items property
var contactItems = contactFolder.Items.OfType<Outlook.ContactItem>().ToList();
...
//then use the List's built-in IndexOf() function:
var index = contactFolder.IndexOf(matchItem);
...