Есть ли более аккуратный способ вставить пробел между строками, чем что-то вроде ""? - PullRequest
4 голосов
/ 04 апреля 2011

Когда я выписываю строку, объединенную с несколькими строками (т.е. использую stringbuilder или concat), мне нужно вставить пробел между каждой строкой.Я часто делаю это так:

StringBuilder sb = new StringBuilder();
sb.Append("a" + " " + "b");

Есть ли более краткий способ сделать это?

Спасибо

Ответы [ 5 ]

6 голосов
/ 04 апреля 2011

Странно, сколько людей просто полностью игнорируют метод AppendFormat в StringBuilder:

sb.AppendFormat("{0} {1}", str1, str2);
5 голосов
/ 04 апреля 2011

Вы можете использовать String.Format метод.

string test = String.Format("{0} {1} {2}", "part1", "part2", "part3");

Или в вашем случае:

sb.AppendFormat("{0} {1}", a, b);
3 голосов
/ 04 апреля 2011

Вы можете использовать метод String.Join :

sb.Append(string.Join(" ", "a", "b"));

Обратите внимание, что это создает промежуточную строку, которая может быть нежелательной.


Меньшекратким, но избегая промежуточных строк, было бы что-то вроде этого:

sb.Append("a").Append(' ').Append("b");
0 голосов
/ 04 апреля 2011

Буквально ответить на ваш вопрос "есть ли более краткий способ?" Ответ прост:

номер

Если вы хотите указать реальную проблему, с которой вы столкнулись, какой-то код, чтобы проиллюстрировать ее, то вы, вероятно, получите больше качественных ответов.

0 голосов
/ 04 апреля 2011

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

sb.Append(str1);
sb.Append(" ");
sb.Append(str2);

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

sb.Apend(str1+" "+str2);

Однако выигрыш будет пренебрежимо мал, если вы не пройдете эти 1000 раз в узком цикле, поэтому я бы выбрал элегантную, легкую для чтения версию (т.е. вашу)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...