Przez 25 minut waliłem głową w ścianę, próbując zrozumieć, dlaczego nie mam dostępu do "pierwszego" indeksu tablicy, który próbowałem zrobić z tablicą [0]. Wciąż otrzymywałem wyjątek Index Out of Bounds. Aby zobaczyć, co się stanie, spróbowałem użyć array [1] ... i zadziałało. Doskonale. Nie mam pojęcia dlaczego.C# Outlook Add-In Arrays Zacznij od 1?
for (int i = 1; i < itemCounter+1; i++)
{
if (explorer.CurrentFolder.Items[i] is Outlook.MailItem)
{ //Do something }
}
Wszystko działa dobrze. Co tu się dzieje?
Co mówi dokumentacja? Brzmi dla mnie jak "Items" to jakiś owinięty typ kolekcji, który przeciąża 'operator []' i rzuca 'IndexOutOfRangeException' dla indeksu 0. Należy również zauważyć, że tablice VB są 1-indeksowane, więc może to jest podkład kompatybilności? (brzmi to dziwnie, ale hej, kto wie.) Nie możesz po prostu zerknąć na kolekcję w debugerze? –
Tak, większość kolekcji w modelu obiektowym Office jest opartych na jednej. Zgadzam się, że dokumentacja OOM jest zatrważająco słabo napisana. – Douglas