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