[英]C# Read Outlook contacts. What's the fastest way?
我正在開發一個C#表單應用程序,我必須在一個步驟中顯示(在列表框中)默認Outlook帳戶中指定了公司的所有聯系人。
我想出了以下功能:
outlookContactsList = new List<OutlookContactData>();
Outlook.Application outlookApp = new Outlook.Application();
Outlook.Items OutlookItems;
Outlook.Items FilteredOutlookItems;
Outlook.MAPIFolder Folder_Contacts;
Folder_Contacts = (Outlook.MAPIFolder)outlookApp.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
OutlookItems = Folder_Contacts.Items;
String CompanyMatch = "[CompanyName] <> ''";
FilteredOutlookItems = OutlookItems.Restrict(CompanyMatch);
var contactlist = new System.Collections.Generic.List<string>();
foreach (Object _obj in FilteredOutlookItems)
{
if (_obj is Outlook.ContactItem)
{
Outlook.ContactItem contact = (Outlook.ContactItem)_obj;
if (contact != null)
{
if (contact.CompanyName != null && contact.CompanyName != string.Empty && contact.CompanyName != " ")
{
OutlookContactData ocd = new OutlookContactData();
if (contact.FullName != null && contact.FullName != string.Empty)
{
ocd.DisplayMember = contact.CompanyName + " - " + contact.FullName;
}
else
{
ocd.DisplayMember = contact.CompanyName;
}
ocd.ContactID = contact.EntryID;
outlookContactsList.Add(ocd);
}
}
}
}
閱讀幾百個條目的聯系人列表需要幾秒鍾......有什么方法可以改善這一點嗎?
使用MAPIFolder.GetTable
- 請參閱https://msdn.microsoft.com/en-us/library/office/ff860692.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.