5

类似于这个问题:

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

但我想忽略字典中的类型,因为我计划调用每个键和值的 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();
 }
4

1 回答 1

12

刚刚呢

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

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

var dictionary = new Dictionary<long, MyClass>();
...
DumpDictionary(dictionary); 
于 2012-03-08T22:30:27.007 回答