簡體   English   中英

C#閱讀Outlook聯系人。 什么是最快的方式?

[英]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);
            }
        }
    }
}

閱讀幾百個條目的聯系人列表需要幾秒鍾......有什么方法可以改善這一點嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM