Есть ли встроенная функция для повторения строки или символа в .NET?
Существует ли в C# функция, которая возвращает x количество заданного символа или строки? Или мне придется реализовать ее самостоятельно?
4 ответ(ов)
Ваш код на C# использует метод string.Join в сочетании с Enumerable.Repeat. Рассмотрим оба примера.
В первом примере:
string.Join("", Enumerable.Repeat("ab", 2));
Метод Enumerable.Repeat("ab", 2) создает последовательность, состоящую из двух элементов, каждый из которых равен строке "ab". Затем string.Join объединяет эти элементы в одну строку, используя пустую строку ("") в качестве разделителя. В результате вы получаете строку "abab".
Во втором примере:
string.Join("", Enumerable.Repeat('a', 2));
Здесь Enumerable.Repeat('a', 2) создает последовательность из двух символов 'a'. Аналогично, string.Join объединяет эти символы в одну строку, также используя пустую строку в качестве разделителя. В результате получается строка "aa".
Таким образом, оба примера демонстрируют, как можно использовать Enumerable.Repeat для создания повторяющихся строк или символов, которые потом объединяются с помощью string.Join.
Код string.Concat(Enumerable.Repeat("ab", 2)); возвращает строку "abab".
Объяснение:
Enumerable.Repeat("ab", 2)создает последовательность, содержащую строку"ab"дважды.- Затем
string.Concat(...)объединяет все элементы этой последовательности в одну строку.
Таким образом, результатом выполнения этого кода является строка, состоящая из двух частей "ab", что дает итог "abab".
Для строк действительно стоит использовать решение Кирка:
string.Join("", Enumerable.Repeat("ab", 2));
Однако для символов можно воспользоваться встроенным (более эффективным) конструктором строки:
new string('a', 2); // возвращает aa
Лучшее решение — это встроенная строковая функция:
Strings.StrDup(2, "a")
Эта функция позволяет дублировать указанную строку заданное количество раз. В данном примере строка "a" будет повторена 2 раза, что в результате даст "aa".
Как установить заголовок Content-Type для запроса HttpClient?
Как добавить пользовательский ввод в SQL-запрос?
Таймаут при использовании Linq-to-SQL
Обрезка строки запроса и возврат чистого URL в C# ASP.NET
Как запустить модульные тесты на платформе x64?