У меня есть шаблонный класс, как показано ниже:
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 функций, где основы кода одинаковы.Есть ли способ, которым я могу изменить это, чтобы код записывался только один раз и мог просто вызвать себя в конце и передать следующую коллекцию?Затем я попытался создать и перечислитель у счетчика в функции, но я не смог заставить перечислитель действовать как имя класса.Любая помощь будет принята с благодарностью.