数据表DT,包含4列col1,col2,col3,col4。
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文件,它会输出错误。关于如何实现它的任何指示?
答案 0 :(得分: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();
答案 1 :(得分: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());