我循环遍历DataSet的行和列,以使用管道分隔符写入文本文件。我有它工作,除了我需要从最后一列留下管道。有没有办法让我调整循环以循环通过fields.count-1然后引用循环外的最后一个字段?
foreach (object item in row.ItemArray)
{
d = d+ item.ToString() + "|";
}
答案 0 :(得分:6)
您可以使用String.Join加入任何IEnumerable(包括数组)的内容,例如:
var newText = String.Join("|",row.ItemArray);
答案 1 :(得分:1)
您可以使用Linq Aggregate:
d = row.ItemArray.Aggregate((x, y) => x.ToString() + "|" + y.ToString());
答案 2 :(得分:1)
您可以使用{/ 1}}方法,例如
TrimEnd(Char[])
答案 3 :(得分:1)
您可以使用:
string.Join("|", row.ItemArray);
答案 4 :(得分:1)
您可以使用string.Join
方法,如下所示:
string.Join("|", row.ItemArray);
但是,如果您还在foreach
循环中执行其他逻辑,请考虑使用StringBuilder
。与一遍又一遍地连接字符串相比,这会带来巨大的性能提升。然后,您可以通过调整它的长度来简单地修剪最终的管道。
var d = new StringBuilder();
foreach (object item in row.ItemArray)
d.Append(item.ToString()).Append("|");
d.Length -= 1;
答案 5 :(得分:0)
:
d = d.remove(d.Count()-1);
这将删除字符串的最后一个字符。
答案 6 :(得分:0)
for(int i = 0; i < row.ItemArray.Length; i ++)
{
if(row.ItemArray[i] == row.itemArray[row.itemArray - 1])
{
d = d+ item.ToString();
}
else
{
d = d+ item.ToString() + "|";
}
}
答案 7 :(得分:0)
如果添加其他值,则只添加分隔符。
for(int i = 0; i < row.ItemArray.Length; i ++)
{
if( d.length == 0)
{
d = item.ToString();
}
else
{
d = d + "|" + item.ToString();
}
}