C#:
Склеивание строк
Как:
Конкатенация строк в C# может быть выполнена несколькими способами:
Использование оператора +:
string hello = "Привет";
string world = "Мир";
string concatenated = hello + ", " + world + "!";
Console.WriteLine(concatenated); // Вывод: Привет, Мир!Использование метода String.Concat():
string concatenated = String.Concat("Привет", ", ", "Мир", "!");
Console.WriteLine(concatenated); // Вывод: Привет, Мир!Использование StringBuilder для эффективности в циклах:
StringBuilder sb = new StringBuilder();
sb.Append("Привет");
sb.Append(", ");
sb.Append("Мир");
sb.Append("!");
Console.WriteLine(sb.ToString()); // Вывод: Привет, Мир!Использование интерполяции строк (C# 6.0 и выше):
string world = "Мир";
string concatenated = $"Привет, {world}!";
Console.WriteLine(concatenated); // Вывод: Привет, Мир!Подробнее
Конкатенация строк не новость; она существует с первых дней программирования. Однако, способы ее выполнения в C# эволюционировали. Изначально широко использовался оператор +, но он не всегда эффективен, особенно в циклах, потому что строки в .NET неизменяемы. Каждая операция + создает новую строку, что может привести к проблемам производительности.
String.Concat() - это прямой вызов метода, который также не подходит для циклов, но подходит для объединения небольшого, известного количества строк.
StringBuilder - это предпочтительный выбор для сценариев с циклами или при постепенном построении строки. Под капотом StringBuilder поддерживает буфер для добавления без создания новых строк для каждой операции добавления.
Интерполяция строк, введенная в C# 6.0, позволяет коду быть более читабельным и поддерживаемым. На этапе компиляции она превращается в вызов String.Format(), но выглядит проще и менее подвержена ошибкам.
Каждый метод имеет свое место: быстрые конкатенации (+), объединение нескольких строк (String.Concat()), интенсивное построение строк (StringBuilder) и чистые, форматированные строки (интерполяция строк).
Смотрите также
- Microsoft Docs по конкатенации строк: Конкатенация строк
- Microsoft Docs о
StringBuilder: Класс StringBuilder