Эквивалент += для префикса
Есть ли немного синтаксического сахара для префикса данных к началу строки аналогично тому, как += добавляет строку?
5 ответов
Просто используйте:
x = "prefix" + x;
Там нет составного оператора присваивания, который делает это.
В C# нет оператора = +, но, к счастью, здесь выручает OO:
string value = "Jamie";
value = value.Insert(0, "Hi ");
Для получения дополнительной информации о string.Insert: http://msdn.microsoft.com/en-us/library/system.string.insert.aspx
Я бы согласился, что a = b + a кажется наиболее разумным ответом здесь. Это читается намного лучше, чем использование string.Insert это точно.
Вы всегда можете написать метод расширения:
public static class StringExtensions{
public static string Prefix(this string str, string prefix){
return prefix + str;
}
}
var newString = "Bean".Prefix("Mr. ");
Это не синтаксический сахар, но тем не менее легко. Хотя на самом деле это не намного проще, чем то, что уже было предложено.
Это методы из FCL, которые можно использовать для объединения строк без необходимости использования какого-либо оператора конкатенации. Операторы + и += склонны к использованию большого количества памяти при повторном вызове (т. Е. Цикле) из-за природы создаваемых строк и временных строк. (Изменить: как указано в комментариях, String.Format часто не является эффективным решением)
Это скорее синтаксическая альтернатива, чем сахар.
string full = String.Format("{0}{1}{2}", "prefix", "main string", "last string");
^ Больше информации о String.Format на MSDN.
Редактировать: только для двух строк:
string result = string.Concat("prefix", "last part");
^ Больше информации о String.Concat.