Создать строку, добавив строки? - PullRequest
0 голосов
/ 20 ноября 2011

Есть ли простой способ создать строку, добавив новый текст как новую строку ?

Я хочу создать текст в стиле журнала для хранения событий следующим образом:

Something superb happened
Wow, that is awesome
Look, a super awesome event here
A little event there
Whoops, an error here

То, что я нашел, в основном ... ничего нового

List<string> output = new List<string>();
output.add("Something superb happened");
output.add("Wow, that is awesome");
output.add("Look, a super awesome event here");
output.add("A little event there");
output.add("Whoops, an error here");
string finalOutput = string.Join(Environment.NewLine, output);

Есть ли лучший способ?

Ответы [ 5 ]

3 голосов
/ 20 ноября 2011

Вместо этого используйте класс StringBuilder.

var sb = new StringBuilder();
sb.AppendLine("Something superb happened");
sb.AppendLine("Wow, that is awesome");
sb.AppendLine("Look, a super awesome event here");
sb.AppendLine("A little event there");
sb.AppendLine("Whoops, an error here");

string finalOutput = sb.ToString();

Обратите внимание, что у него есть перегрузка конструктора, которая принимает начальную емкость (как int), поэтому, если у вас есть представление о том, что это будет, используйте эту перегрузку, поскольку это позволит избежать дорогостоящего изменения размера внутреннего буфера.

3 голосов
/ 20 ноября 2011

Вы также можете использовать StringBuilder . Это довольно эффективно.

StringBuilder builder = new StringBuilder();
builder.AppendLine("Something happended");
builder.AppendLine("Wow ");

может быть более эффективным, чем то, что у вас есть, если вы делаете это много, поскольку это не создает много временных строк.

2 голосов
/ 20 ноября 2011

Да, используйте StringBuilder.

System.Text.StringBuilder sbText = new System.Text.StringBuilder(500);

sbText.AppendLine("Something superb happened");
sbText.AppendLine("Wow, that is awesome");

string finalOutput = sbText.ToString();
1 голос
/ 20 ноября 2011

Вы можете использовать StringBuilder для эффективного объединения нескольких строк в одну String.Особенно, если вы делаете много модификаций строк (например, добавление строк и т. Д.).

Пример:

var output = new StringBuilder();
output.AppendLine("Something superb happened");
output.AppendLine("Wow, that is awesome");
output.AppendLine("Look, a super awesome event here");
output.AppendLine("A little event there");
output.AppendLine("Whoops, an error here");
string finalOutput = output.ToString();
0 голосов
/ 20 ноября 2011

Вы можете использовать построитель строк и добавить

StringBuilder output = new StringBuilder();
output.Append("Something superb happened"+Environment.NewLine);
output.Append("Wow, that is awesome"+Environment.NewLine);
output.Append("Look, a super awesome event here"+Environment.NewLine);
output.Append("A little event there"+Environment.NewLine);
output.Append("Whoops, an error here"+Environment.NewLine);

string finalOutput = output.ToString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...