我有一个数据表DT,其中包含3列col1,col2,col3。
我写了下面的代码
Boolean fst = true;
string q = Convert.ToString('"');
foreach (DataColumn co in DT.Columns)
{
if (fst)
{
colname = colname + q + co.ColumnName+q ;
fst = false;
}
else
colname = colname +","+ q+co.ColumnName+q ;
}
我想要的输出是colname =“col1”,“col2”,“col3”
但我得到一个输出colname =“\”col1 \“,\”col2 \“,\”col3 \“
如何获得所需的输出?任何指针请....
与此同时我有一个带有4列col1,col2,col3,col4的数据表DT。
str = String.Format(“{0,-30} {0,-30} {0,-30} {0,-30}”,“Col1”,“Col2”,“Col3”,“Col4 “);
如果我们将str写入文件,它将生成输出
Heloo Heloo Heloo Heloo
我需要以编程方式执行此操作
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}”; colname的值=“Col1”,“Col2”,“Col3”,“Col4”;
但是,如果我写str文件,它会输出错误。关于如何实现它的任何指示?
答案 0 :(得分:1)
您的代码正在输出您想要输出的内容。
你在问题的评论中已经说过,当你在调试时,你会看到这个;这只是Watch窗口的一个功能,为您转义引号字符。
顺便说一下,您的代码可以通过多种方式更有效地编写;一个例子,这仍然是合理的可读性:
colname = "";
foreach (DataColumn co in DT.Columns) {
colname += "\"" + co.ColumnName + "\",";
}
colname = colname.TrimEnd(',');
答案 1 :(得分:0)
使用\
Boolean fst = true;
string q = Convert.ToString('\"');
foreach (DataColumn co in DT.Columns) {
if (fst) {
colname = colname + q + co.ColumnName + q ;
fst = false;
} else
colname = colname +","+ q + co.ColumnName + q ;
}
也试试这个
colname = colname + @"" + co.ColumnName + @"" ;
答案 2 :(得分:0)
string q = string.empty
foreach (DataColumn co in DT.Columns)
{
q =+ "\"";
q = q + co.ColumnName + "\"" + ",";
}
q = q.remove(q.length - 1 , 1 )
答案 3 :(得分:0)
这有点清洁:
var tab = new DataTable();
int row = 0;
var columnNames = from DataColumn c in tab.Columns
let count = row++
select string.Format("{0, -30}",c.ColumnName + row);
string.Join(", ", columnNames);
答案 4 :(得分:0)
您的原始代码是(a)没有生成正确的格式字符串,以及(b)尝试将字符串提供给需要数组的String.Format
。
var columns = DT.Columns.Select(c => c.ColumnName);
var colname = string.Join(",", columns.Select(c => string.Format("\"{0}\"", c)));
var str = string.Join("", columns.Select(c => string.Format("{0,-30}", string.Format("\"{0}\"", c))));
如果您不需要在str
中引用列名,那么它将是
var str = string.Join("", columns.Select(c => string.Format("{0,-30}", c)));