通用列表/字典

Sas*_*cha 5 c# generics

我正在尝试通过反射输出对象图.其中有几种通用类型(列表,词典).我不知道它们包含的类型(字符串,对象等)但想要列出它们(使用.ToString()).

那么,有没有办法以通用方式输出通用列表/字典,这意味着无需为每个键< - >值组合编写重载函数?

我认为它可以用.NET 4.0,但目前还没有在这里..

Mar*_*ell 4

如果您使用反射,泛型就会变得非常棘手。您可以简单地使用非通用接口吗?IDictionary/ IList? 这会容易得多......类似:

static void Write(object obj) {
    if (obj == null) { }
    else if (obj is IDictionary) { Write((IDictionary)obj); }
    else if (obj is IList) { Write((IList)obj); }
    else { Console.WriteLine(obj); }
}
static void Write(IList data) {
    foreach (object obj in data) {
        Console.WriteLine(obj);
    }
}
static void Write(IDictionary data) {
    foreach (DictionaryEntry entry in data) {
        Console.WriteLine(entry.Key + "=" + entry.Value);
    }
}
Run Code Online (Sandbox Code Playgroud)