首页 > 解决方案 > 创建一个输出不同数据类型并可以在每次调用中使用的递归函数?

问题描述

我有一个模板类,如下所示:

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>

在我的实际代码中,然后我调用一个函数,该函数将顶级集合作为输入参数,对这个集合的第一个值执行一些操作,然后调用第二个函数,并将参数作为第二个集合:

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 个基本代码相同的函数。有没有办法可以改变这个,所以代码只写一次,最后可以调用自己并传入下一个集合?然后我尝试在函数中的计数器上创建和枚举器,但我无法让枚举器充当类名。任何帮助将不胜感激。

标签: c#templatesrecursion

解决方案


推荐阅读