访问字典中的数组内容

时间:2014-02-07 18:41:35

标签: c# arrays dictionary

我试图从我在字典中存储为Value数据类型的数组中访问和检索值,但到目前为止还没有运气。请参阅我的字典当前语法的以下示例。

Dictionary<string, double[]> dict= new Dictionary<string, double[]>();

double[] dubarray = new double[20];
String[] keyval = somestringarray[0].ToString();

然后我有一个循环,将键/值存储到字典中。

dict.Add(keyval[0], dubarray);

现在我正在解析字典并依赖于键访问数组中包含的值(dubarray)。我还想返回整个数组以进行日志记录。目前我收到以下内容:“System.Double []”

foreach (KeyValuePair<string, double[]> item in dict)
{
    System.Diagnostics.Debug.WriteLine("dict.KEY is : " + item.Key + "dict.VALUE is : " + item.Value);
}

有人可以回答我如何访问字典中每个实例中包含的数据元素吗?

3 个答案:

答案 0 :(得分:1)

您可以连接数组值来编写它们:

foreach (KeyValuePair<string, double[]> item in dict)
{
    Debug.WriteLine("dict.KEY is : " + item.Key + 
                    "dict.VALUE is : " + String.Join(",", item.Value));
}

当您在数组类型的变量上调用ToString()时,您只需获得包含类型名称的字符串 - "System.Double[]"

答案 1 :(得分:0)

double[] dubarray = dict[mystring].ToArray();

答案 2 :(得分:0)

发生这种情况的原因是因为ToString(),如果没有被类覆盖,则返回Object类型的完全限定名称。当你这样做

Debug.WriteLine(item.Value);

它会自动为Value中的类调用ToString()函数。在这种情况下,它是一个双精度数组,或System.double []。

您要做的是获取数组中的所有值,将它们串在一起,然后显示结果。

foreach (KeyValuePair<string, double[]> item in dict)
{
    Debug.WriteLine(String.Format("dict.KEY IS : {0}\ndict.VALUE is : {1}", 
                                   item.Key, string.Join(", ", meow["Test"])));
}