簡體   English   中英

C#Outlook加載項數組從1開始?

[英]C# Outlook Add-In Arrays Start at 1?

我一直在腦海里摸索25分鍾,試圖弄清為什么我無法訪問數組的“第一個”索引,而這正是我嘗試使用array [0]進行的。 我一直在獲取超出邊界異常的數組索引。 我只是想看看會發生什么,所以我嘗試使用array [1] ...並且成功了。 完美。 我不知道為什么。

for (int i = 1; i < itemCounter+1; i++)
{
     if (explorer.CurrentFolder.Items[i] is Outlook.MailItem)
     { //Do something }
}

整個事情都很好。 這里發生了什么?

看起來Outlook對象模型是Office對象模型的一部分,並且如http://msdn.microsoft.com/en-us/library/aa189134%28v=office.10%29.aspx所述,

Office應用程序中使用的大多數集合(Access除外)都基於一個集合,即集合中第一項的索引號為1。

另外, http://msdn.microsoft.com/en-us/library/522xhsa3%28v=vs.90%29.aspx專門告訴我們

若要訪問Microsoft Office應用程序的對象模型中集合的第一項,請使用索引1而不是0。

是的,看起來Items會返回一個集合對象 ,並且使用類似的數組修飾符訪問時,這些對象被稱為螺絲釘。 您應該能夠執行.ToArray()來獲得預期的行為,否則,您可以簡單地foreach var item in items使用foreach var item in items並在文件夾中獲取所有內容,並確保終止結構。

暫無
暫無

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

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