Я сделал обходной путь, используя ссылку , предоставленную Wai Ha Lee. Я должен был изменить это, хотя, потому что тестирование, если элемент MailItem все еще вел себя странно.
Поэтому я сначала копирую элементы в отдельный список и проверяю, чтобы в этом списке были только элементы типа MailItem.
Единственный способ получить этот фильтр - использовать try...catch
, мне все равно хотелось бы лучшего способа, и мне все еще любопытно, почему тест if (items[i] is MailItem)
ведет себя так странно.
List<MailItem> ReceivedEmail = new List<MailItem>();
foreach (var testMail in items)
{
try
{
ReceivedEmail.Add((MailItem)testMail);
}
catch (System.Exception ex)
{
;
}
}
После этого я могу использовать список ReceivedEmail
без проверки на MailItem.