double[] a = { 2.122, 3.665, 4.917 };
double[][] c = m_CO.Process(cc);
foreach(double d in c)
{
lblText.Text = d.tostring();
}
,其结果是(system.Double[][])
或者(Empty string)
双[] []转换为字符串[C#]
double[] a = { 2.122, 3.665, 4.917 };
double[][] c = m_CO.Process(cc);
foreach(double d in c)
{
lblText.Text = d.tostring();
}
,其结果是(system.Double[][])
或者(Empty string)
双[] []转换为字符串[C#]
在物体上ToString
,除非被覆盖返回对象的类型名称。此外,您的foreach
不会编译,因为二维数组中的每个项目的类型为double[]
而不是double
。
你能做什么,用string.Join
和LINQ Select
是:
string result = string.Join(",", d.Select(i => string.Join(",", i)));
或者,如果分离器是一样的,与SelectMany
作为@Jakub Dabek建议:
string result = string.Join(",", d.SelectMany(i => i));
对于数据:
double[][] d = new double[2][]
{
new double[] {1,2},
new double[] {3,4},
};
返回结果:"1,2,3,4"
你可以做'string.Join(“,”,d.SelectMany(t => t))' –
@JakubDąbek - 如果它是相同的分隔符,则为true。好建议。编辑我的答案 –
c
是Jagged Array。如果您尝试一个数组它仅仅返回它的类型上运行.ToString()
foreach (double[] da in c)
{
foreach (var d in da)
{
lblText.Text += d.ToString();
}
}
: 那么试试这个。
如果你想把它转换成一个字符串,你需要决定格式。如果我可以建议一个:
double[] a = { 2.122, 3.665, 4.917 };
double[][] c = m_CO.Process(cc);
var usCulture = new CultureInfo("en-US");
// Using a list to build the string is more efficient than += every time
var tmpList = new List<string>();
foreach (var l1 in c) // l1 is double[]
{
foreach (var l2 in l1) // l2 is double
{
// Specify en-US culture since many cultures use "," instead of "." for decimal separator
tmpList.Add(l2.ToString(usCulture));
}
}
lblText.Text = string.Join(", " , tmpList);
tmpList.Clear();
如果程序只在一种文化下运行,那么设置文化并不是绝对必要的。但是来自具有“,”作为分隔符的文化,我经常遇到与此相关的错误。当然你也可以做l2.ToString().Replace(",", ".")
。
你应该问一个问题。你已经展示了结果,以及一些不能编译的示例代码。你期待什么?实际的代码是什么? –
'foreach(c中的double d)'不会编译 – haim770
我想在屏幕上的标签中显示c的值..并且返回一个空字符串 –