Я столкнулся с проблемой со строковым конструктором, который я, похоже, не могу решить. Для упрощения задачи я создаю следующий метод:C# Stringbuilder повреждает содержимое при добавлении большого количества текста
private static string TestBigStrings() {
StringBuilder builder = new StringBuilder();
for (int i = 1; i < 1500; i++) {
string line = "This is a line isn't too big but breaks when we add to many of it.";
builder.AppendLine(line);
}
return builder.ToString();
}
Следует только добавить, что линия 1500 раз, а затем объединить его в строку и возвращают его. Однако вместо того, чтобы просто комбинировать его, он развращает контент. Где-то в середине результата вы найдете текст:
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of ...s a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
This is a line isn't too big but breaks when we add to many of it.
Проект представляет собой простую консоль. Я также попытался все другие решения, чтобы проверить, возможно ли это какой-то другой способ, как:
Запись текста в файл (тот же коррупция и обрывается рано)
Записав его к поток памяти и чтение, что (же коррупция)
Использование списка и присоединение, что (же коррупция)
Только с помощью + = на шнурке (такая же коррупция)
использованием String.Concat (же коррупция)
Все мои коллеги, я попросил работают в той же проблеме, так что это не должно быть ПК связаны между собой. Кто-нибудь знает, что здесь происходит?
Невозможно воспроизвести его ... Дайте нам больше информации о том, какая версия .NET/VS/x86/x64 –
@GeorgeVovos, потому что это невозможно, особенно на всех его коллегах ПК. – Sakura
Я также запустил код, и проблема не была воспроизведена - .NET 4.5. – SashaDu