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

时间:2012-03-08 22:26:13

标签: c# dictionary stringify

与此问题类似:

Best way to convert Dictionary<string, string> into single aggregate String representation?

但是我想忽略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();
 }

1 个答案:

答案 0 :(得分:12)

怎么样只是

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

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

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