все.У меня проблемы с запуском надстроек Outlook 2010 в режиме без кэширования Exchange.Кажется, есть ограничение на количество звонков в Exchange.Из этой статьи мои коллеги считают, что если мы позаботимся обо всех проблемах с утечками, тогда не должно быть никаких проблемТаким образом, у меня есть следующая функция, которая возвращает IEnumerable, который был написан с помощью цикла foreach.Я попытался преобразовать его в цикл for, но я не могу получить все нужные мне папки, независимо от их глубины, и также странно, что мне нужно начинать счет с 1, иначе я получаю ошибку Index of of bound,Может кто-нибудь взглянуть на мой цикл for и сказать, почему он не получает все дочерние папки из корневой папки?Например, с помощью цикла foreach я могу получить папки A, folderB и folderC со всеми дочерними папками в папке C, но с помощью цикла for я могу получить только папки A, folderB и folderC.
Цикл Foreach:
private static IEnumerable<Outlook.Folder> getChildFolders(Outlook.Folder rootFolder, string folderToSkip)
{
foreach (Outlook.Folder t in rootFolder.Folders)
{
if (t.Name.Equals(folderToSkip) && !String.IsNullOrEmpty(folderToSkip))
{
continue;
}
yield return t;
foreach (Outlook.Folder i in getChildFolders(t, folderToSkip)) { yield return i; }
}
}
Для цикла:
для (int count = 1; rootFolder.Folders.Count> count; count ++) {if (rootFolder.Folders [count] .Name.Equals (folderToSkip) &&! String.IsNullOrEmpty (folderToSkip)) {продолжить;} var t = rootFolder.Folders [count] as Outlook.Folder;yield return t;
for (int i = 1; t.Folders.Count > i; i++)
{
var f = getChildFolders(t, folderToSkip).OfType<Outlook.Folder>().ToList()[i] as Outlook.Folder;
yield return f;
}
}
Я не думаю, что цикл foreach вызовет какую-либо утечку в Outlook.Я попробовал второй цикл for, как описано выше, но я все еще не могу запустить его правильно.Я действительно борюсь с этим.Может кто-нибудь показать мне, что и где я неправильно понимаю?