[英]Issue in string formatting with c#
具有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寫入文件,則會產生錯誤的輸出。 關於如何達到目標的任何指示?
嗯..您給的格式將產生:
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();
不確定我是否了解您的要求,但這可能是您所需要的
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());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.