Stringbuilder AppendLine слишком много добавляет на одну новую строку - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь создать QR-код с C# в Visual Studio ... Для каждого большого тега я создал класс с 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

EDIT: Итак, теперь вывод с AppendLine выглядит следующим образом:

1
Empty Line
2
Empty Line
3
Empty Line

Но я хочу, чтобы это было как это:

1
2
3

1 Ответ

0 голосов
/ 05 мая 2020

Используйте разделитель строк ("\ n")


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