Создание рекурсивной функции, которая выводит другой тип данных и может использовать его при каждом вызове? - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть шаблонный класс, как показано ниже:

public class Collections<T, U>
    {
        public Dictionary<T,U> collection;
        public Collections()
        {
            collection = new Dictionary<T,U>();
        }
    }

Моя структура данных содержит несколько коллекций, которые затем представляют собой такие коллекции, как:

ShareCollection = Collections<int, SiteCollection>
SiteCollection = Collections<int, WebCollection>
WebCollection = Collections<int, ListCollection>
ListCollection = Collections<int, ItemCollection>
ItemCollection = Collection<int, string>

Inмой реальный код, затем я вызываю функцию, которая принимает коллекцию верхнего уровня в качестве входного аргумента, что-то делает с первым значением этой коллекции, затем вызывает вторую функцию с аргументом в качестве второй коллекции:

void ShareCollectionIterator(ShareCollection s)
{
     //Code
     SiteCollections si = ShareCollection[SiteGuid];
     SiteCollectionIterator(SiteCollection si)
}

void SiteCollectionIterator(SiteCollection si)
{
     //Code
     WebCollectionIterator w = SiteCollection [WebGuid];
     WebCollectionIterator(w)
}

void WebCollectionIterator(WebCollection w)
...

И так до тех пор, пока не пройдут все коллекции.Поэтому я сделал 6 функций, где основы кода одинаковы.Есть ли способ, которым я могу изменить это, чтобы код записывался только один раз и мог просто вызвать себя в конце и передать следующую коллекцию?Затем я попытался создать и перечислитель у счетчика в функции, но я не смог заставить перечислитель действовать как имя класса.Любая помощь будет принята с благодарностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...