0

Есть ли встроенная функция для повторения строки или символа в .NET?

14

Существует ли в C# функция, которая возвращает x количество заданного символа или строки? Или мне придется реализовать ее самостоятельно?

4 ответ(ов)

0

Ваш код на 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.

0

Код string.Concat(Enumerable.Repeat("ab", 2)); возвращает строку "abab".

Объяснение:

  • Enumerable.Repeat("ab", 2) создает последовательность, содержащую строку "ab" дважды.
  • Затем string.Concat(...) объединяет все элементы этой последовательности в одну строку.

Таким образом, результатом выполнения этого кода является строка, состоящая из двух частей "ab", что дает итог "abab".

0

Для строк действительно стоит использовать решение Кирка:

string.Join("", Enumerable.Repeat("ab", 2));

Однако для символов можно воспользоваться встроенным (более эффективным) конструктором строки:

new string('a', 2); // возвращает aa
0

Лучшее решение — это встроенная строковая функция:

Strings.StrDup(2, "a")

Эта функция позволяет дублировать указанную строку заданное количество раз. В данном примере строка "a" будет повторена 2 раза, что в результате даст "aa".

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь