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
は、2d配列の各項目がdouble[]
であり、double
ではないため、コンパイルされません。データについては
string result = string.Join(",", d.SelectMany(i => i));
:@Jakub Dabekが示唆したように、セパレータはSelectMany
と、同じであれば、
string result = string.Join(",", d.Select(i => string.Join(",", i)));
または:string.Join
とLINQのSelect
を使って何ができるか
は、次のとおりです。
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です。 だから、これを試してみてください。
foreach (double[] da in c)
{
foreach (var d in da)
{
lblText.Text += d.ToString();
}
}
をあなたはそれが単にその型を返しますアレイ上.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();
プログラムが1つのカルチャーでのみ実行される場合、カルチャーを設定することは厳密には必要ではありません。しかし、 "、"という区切り文字を持つ文化から来て、私はしばしばこれに関連するバグに遭遇します。もちろん、l2.ToString().Replace(",", ".")
も行うことができます。
実際に質問する必要があります。あなたは結果が何であるか、そしてコンパイルされないサンプルコードを示しました。何を期待していたのですか、そして実際のコードは何ですか? –
'foreach(double d in c)'はコンパイルされません – haim770
私は画面上のラベルにcの値を表示したいのですが、空の文字列を返します –