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

Aer*_*rik 5 c# dictionary stringify

与此问题类似:

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

但是我想忽略Dictionary中的类型,因为我打算调用每个键和值的ToString()方法.

我认为它不应该是一个问题,但我无法弄清楚如何传入一个无类型的字典,而不仅仅是把它作为对象...任何想法?

[编辑]添加工作代码片段:这是有效的 - 感谢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();
 }
Run Code Online (Sandbox Code Playgroud)

two*_*wer 12

怎么样呢

void DumpDictionary<TKey, TElement>(IDictionary<TKey, TElement> dictionary)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

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

var dictionary = new Dictionary<long, MyClass>();
...
DumpDictionary(dictionary); 
Run Code Online (Sandbox Code Playgroud)