当我不关心字典的类型时,如何将字典作为参数传递?

5
与这个问题类似:

将Dictionary<string,string>转换为单个聚合字符串表示的最佳方法是什么?

但我想忽略字典中的类型,因为我计划调用每个键和值的ToString()方法。
我认为这不应该是一个问题,但我无法想出如何传入未经类型化的字典,除非只是将其强制转换为Object...有什么想法吗?
[编辑] 添加工作代码片段: 这个有效 - 感谢twoflower
public string DumpDictionary<TKey, TElement>(IDictionary<TKey, TElement> dictionary)
{
      StringBuilder sb = new StringBuilder();
      foreach (var v in dictionary)
      {
           sb.AppendLine(v.Key.ToString() + ":" + v.Value.ToString());
      }
      return sb.ToString();
 }

你可以尝试将其作为 IDictionary 传递,但我不确定那样会起作用。 - Jeff
1个回答

12

那就只需要

void DumpDictionary<TKey, TElement>(IDictionary<TKey, TElement> dictionary)
{
   ...
}

在大多数情况下,您可以在没有类型参数的情况下调用它,因为它们将被推断出来:

var dictionary = new Dictionary<long, MyClass>();
...
DumpDictionary(dictionary); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接