删除或不写最后';'行中的符号

时间:2012-01-13 06:41:31

标签: c# csv export

我已导出为CSV脚本。

我导出struct的列表。我在StringWriter的帮助下写作。在struct field array foreach循环中,我迭代遍历所有属性,并在每个属性之后放置&#39 ;;'。在第一行我写了WriteLine()。

所以作为输出我有:

value1;value2;value3;

我想要:

value1;value2;value3

问题是:如何从我得到的东西中得到我想要的东西,或者基于我已经做过的东西。

我现在有3个想法:

  1. 行中的最后2个符号应该是&#34 ;; \ r(\ n)"所以不要用任何东西替换这个组合。
  2. 检查该物业是否为最后一个。
  3. 修剪每行中的最后一个(换行前)符号。

4 个答案:

答案 0 :(得分:6)

使用String.Join为输出形成每一行。它可以防止你必须检查哪个术语是最后一个。

http://msdn.microsoft.com/en-us/library/57a79xd0.aspx

var values = { "value1", "value2", "value3" };

string line = string.Join(";", values);

行将是

"value1;value2;value3"

答案 1 :(得分:3)

试试这段代码,

str.TrimEnd(';');

答案 2 :(得分:1)

通常我只是在行形成后删除最后一个字符。

答案 3 :(得分:1)

我使用StringBuilder并执行:

var builder = new StringBuilder();
// ...
// add the text
// ...
builder.Length--;

这样我就可以避免使用字符串了。