【问题标题】:Stringbuilder AppendLine is adding one new line too muchStringbuilder AppendLine 添加了太多新行
【发布时间】:2020-08-19 22:04:03
【问题描述】:

我正在尝试在 Visual Studio 中使用 C# 生成 QR 码... 对于每个大标签,我使用 childTags 创建了一个类...我覆盖了 ToString() 函数以使用 Stringbuilder 并将每个标签添加到它

class QRCdtrInf
{
    public string IBAN;
    public QRCdtr Cdtr;
    public override string ToString()
    {
        var sb = new StringBuilder();
        sb.AppendLine(IBAN);
        sb.Append(Cdtr.ToString());
        return sb.ToString();
    }
}

最后有一个类 QRData,它接受所有的类 ToString 并附加它..

class QRData
{
    public QRHeader Header;
    public QRCdtrInf CdtrInf;
    public QRUltmtCdtr UltmtCdtr;
    public QRCcyAmt CcyAmt;
    public QRUltmtDbtr UltmtDbtr;
    public QRRmtInf RmtInf;
    public QRAltPmtInf AltPmtInf;

    public override string ToString()
    {
        var sb = new StringBuilder();
        sb.Append(Header.ToString());
        sb.Append(CdtrInf.ToString());
        sb.Append(UltmtCdtr.ToString());
        sb.Append(CcyAmt.ToString());
        sb.Append(UltmtDbtr.ToString());
        sb.Append(RmtInf.ToString());
        return sb.ToString();
    }

}

然后我将它发送到编码,当我扫描它时,每行我总是得到太多的一行.. 我什至尝试过 Append(Enviroment.NewLine)... 我尝试只使用 Append... 然后它将所有内容写在一行中。 所以要么我在一行中有所有值,要么在每个值之间有一个 CRLF 太多

编辑: 所以现在使用 AppendLine 的输出是这样的:

1
Empty Line
2
Empty Line
3
Empty Line

但我想要这样:

1
2
3

【问题讨论】:

  • 所以您的问题是:“如何在数据之间添加新行?”对吗?
  • @AdrianEfford 查看我的编辑:
  • 试试:sb.Append("data \n");是你想要的吗?
  • @AdrianEfford 不是所有的英雄都穿斗篷...非常感谢...但是您知道为什么 AppendLine 会多做一件而我不得不使用“\n”吗?
  • 不客气!老实说,我不确定......我认为这是因为覆盖 String 方法。尝试在里面调试,但正如我所说,我不确定你为什么会遇到这个问题。如果你发现了就告诉我!!

标签: c# visual-studio append qr-code stringbuilder


【解决方案1】:

使用行分隔符(“\n”)


sb.Append(data.toString + "\n");

【讨论】:

    猜你喜欢
    • 2017-04-01
    • 1970-01-01
    • 2015-02-09
    • 2012-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-02
    • 2021-09-04
    相关资源
    最近更新 更多