0

4列のcol1、col2、col3、col4を持つデータテーブルDT。

str = String.Format("{0,-30}{0,-30}{0,-30}{0,-30}", "Col1", "Col2", "Col3", "Col4");

str をファイルに書き込むと、出力が生成されます

Col1                         Col2                         Col3                         Col4 

私はプログラムでそれを行う必要があります

string str = "";
Boolean fst = true;
string q = Convert.ToString('"');
string frmt = "";
foreach (DataColumn co in DT.Columns)
{

    if (fst)
    {
        colname = colname + q + co.ColumnName + q;
        fst = false;
    }
    else
    {
        colname = colname + "," + q + co.ColumnName + q;
    }

    frmt = frmt + "{0,-30}";
}
str = String.Format(frmt, colname);

ここで の値のfrmt="{0,-30}{0,-30}{0,-30}{0,-30}";colname="Col1", "Col2", "Col3", "Col4";

しかし、strをファイルに書き込むと、出力が悪くなります。それを達成する方法についての指針はありますか?

4

2 に答える 2

0

うーん..あなたが与えたフォーマットは次のようになります:

Col1          Col1         Col1          Col1

また、String.Format() メソッドは、オブジェクトの配列をパラメータとして想定しています。渡すのは、単語がコンマで区切られた単一の文字列です。

次のようなことをしてみませんか:

StringBuilder sb = new StringBuilder()

foreach (DataColumn co in DT.Columns)
   sb.Append(String.Format("{0,-30}", co.ColumnName));

return sb.ToString();
于 2013-07-10T03:58:00.470 に答える
0

私はあなたの要件を理解していませんが、これはあなたが必要としているものかもしれません

string frmt = "";
int columnCount = 0;
var values = new List<string>();
foreach (DataColumn co in DT.Columns)
{
    values.Add(co.ColumnName);
    frmt += string.Format("{0}{2}, -30{1}", "{", "}", columnCount);
    columnCount++;
}
string str = string.Format(frmt, values.ToArray());
于 2013-07-10T04:12:54.813 に答える