我试图从我在字典中存储为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);
}
有人可以回答我如何访问字典中每个实例中包含的数据元素吗?
答案 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"])));
}