c# - 递归泛型类型

标签 c# generics

是否可以在 C# 中定义一个引用自身的泛型类型?

例如我想定义一个 Dictionary<> 并将其类型保存为 TValue(对于层次结构)。

Dictionary<string, Dictionary<string, Dictionary<string, [...]>>>

最佳答案

尝试:

class StringToDictionary : Dictionary<string, StringToDictionary> { }

然后你可以这样写:

var stuff = new StringToDictionary
        {
            { "Fruit", new StringToDictionary
                {
                    { "Apple", null },
                    { "Banana", null },
                    { "Lemon", new StringToDictionary { { "Sharp", null } } }
                }
            },
        };

递归的一般原则:找到一些方法为递归模式命名,以便它可以通过名称引用自身。

关于c# - 递归泛型类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/647533/

相关文章:

c# 如何从 List<T> 创建 SortableBindingList

c# - unity 名称 ' unzip ' 在当前上下文中不存在

c# - 泛型声明和提供类参数的区别

arrays - 具有通用2D数组的通用函数

Java - 从字符串类型转换为泛型类型

c# - 如何在父窗口中相对于a控件的位置显示Modal窗体(opener)

javascript - 如何在后面的代码中获取在客户端创建的文本框的值?

c# - 主线程是前台线程还是后台线程?

java - 为什么 Java 集合的删除方法不是通用的?

delphi - E2506 在接口(interface)部分声明的参数化类型的方法不得使用局部符号