StringBuilder.AppendFormat,格式为嵌入式选项卡

时间:2012-09-04 21:43:47

标签: c# stringbuilder

我花了最近2个小时的谷歌搜索,要么我忘了关键字,要么我是唯一一个有这个问题的人。

我需要一个制表符分隔文件

        StringBuilder sb = new StringBuilder();
        foreach (Transaction line in lines)
        {
            sb.AppendFormat("{0}\t{1}\t{2}\t{3}\t{4}\r\n", 
                                    line.portfolio_id, line.cp_client_id, line.instrument_id, line.sign_id, line.currency_id);

        }

        using (StreamWriter w = new StreamWriter(filefullpath,true))
        {                
            w.Write(sb.ToString());
            w.Flush();
            w.Close();
        }

以上代码,产量

PROD.3264-PAYMENTS;CUST.406;CASH-PAYMENT-DI;Pay;USD;

我不确定分号来自哪里。

请有人可以从中获得一些亮点......

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

我引用的其中一个库中有一个扩展名(并且clearl错位)。有人必须编写以避免发送制表符分隔文件。事实上我的代码中的行,stringbuilder内容都很好,直到调用ToString()方法,这意味着几乎不可能调试它。

public static string ToString(this StringBuilder sb)
    {
        return sb.ToString().Replace("\t", ";");            
    }

我开始对文档有新的尊重

所以请注意扩展(我附加到扩展程序,但是当你遇到这样的问题时,它会让它变得有点困难 - 只有一个小时)