2013-06-03 6 views
2

Есть ли быстрый способ добавить StringBuilder несколько раз в C#? Конечно, я могу написать собственное расширение для добавления в цикл, но он выглядит неэффективным.StringBuilder добавляет один и тот же символ несколько раз

+0

Можете ли вы показать код, который у вас уже есть? Чего вы пытаетесь достичь? Почему это неэффективно? Peformance/Память? – derape

+0

Потому что это просто 'for' –

ответ

17

There is already an Append overload, который принимает char value и int repeatCount:

char c = ... 
int count = ... 
builder.Append(c, count); 

или более просто (во многих случаях):

builder.Append(' ', 20); 
+0

Я полностью слеп. –

3

Вы можете использовать строковый конструктор

sb.Append(new String('a', 3)); // equals sb.Append("aaa") 
+0

Я не знал, что StringBuilders добавляют перегрузку, указанную Marc. Очевидно, что лучше (: –

1

StringBuilder имеет конструктор lile StringBuilder.Append Method (Char, Int32)

Добавляет заданное количество копий в строковое представление символа Unicode в этом случае.

Как StringBuilder.Append(char value, int repeatCount)

Например;

StringBuilder sb = new StringBuilder(); 
sb.Append('*', 10); 
Console.WriteLine(sb); 

Выход будет;

********** 

Адрес DEMO.

Смежные вопросы