使用不同数据类型的Dictionary的方法

时间:2017-07-25 13:57:46

标签: c#

以下代码转到名为Formula的类,并为公式生成数字和标签。这些在两个单独的Dictionarys中返回,因为数字是双数据类型,标签是字符串。

Formula formula = new Formula(formula_type, primary_output, fat_values);

Dictionary<string, double> numbers = formula.generateNumbers();
Dictionary<string, string> labels = formula.generateLabels();

我正在尝试创建一个方法,可以输入这些Dictionarys中的任何一个,但我仍然坚持使用方法签名中的数据类型(参见下面的代码中的???)。

private static void displayData(string text, Dictionary<string, ???> dict)
{
  string words = "The " + text + " Dictionary contains the following:";
  Console.Out.WriteLine(words);
  foreach (var pair in dict)
  {
    Console.Out.WriteLine(pair.Key + "=>" + pair.Value);
  }
  Console.Out.WriteLine("");
}

有一种简单的方法可以实现这一目标吗?如果解决方案很复杂,那么替代方法将更为可取,因为简单性非常重要。

1 个答案:

答案 0 :(得分:4)

使用generic method

private static void displayData<T>(string text, Dictionary<string, T> dict)
{
  string words = "The " + text + " Dictionary contains the following:";
  Console.Out.WriteLine(words);
  foreach (var pair in dict)
  {
    Console.Out.WriteLine(pair.Key + "=>" + pair.Value.ToString());
  }
  Console.Out.WriteLine("");
}

致电:

displayData<string>("text",labels);