2011-09-29 10 views
13

Me gustaría repetir un conjunto de caracteres varias veces. Yo sé cómo hacerlo con un solo carácter:Cómo repetir un conjunto de caracteres

string line = new string('x', 10); 

Pero lo que me gustaría sería algo más parecido a esto:

string line = new string("-.", 10); 

lo que resultaría en:. -.-.- .-.-.-.-.-.-.

Sé que el constructor de cadenas no puede hacerlo, pero ¿hay alguna otra forma dentro del BCL? ¿Otras sugerencias?

Gracias!

+0

posible duplicado de [Puedo “multiplicar” una cadena (en C#)?] (Http://stackoverflow.com/ q/532892/588306) – Deanna

+0

Posible duplicado de [¿Hay una manera fácil de devolver una cadena repetida X veces?] (http://stackoverflow.com/questions/3754582/is-there-an-easy-way- to-return-a-string-repeated-x-number-of-times) –

Respuesta

20

Una ligera variación en la respuesta por Bala R

var s = String.Concat(Enumerable.Repeat("-.", 10)); 
+0

Esta es la solución más limpia para lo que busco. ¡Gracias! –

19
var result = String.Join("", Enumerable.Repeat("-.", 10)); 
+0

Nunca he visto la clase Enumerable. Impresionante +1 –

+0

@RyanBennett, ¿quieres decir que nunca usaste LINQ? :) –

+0

No es así - no estoy seguro de cómo pude pasar tres años y pasar por alto una clase completa ... –

9
string line = new String('x', 10).Replace("x", "-."); 
+0

De manera agradable, si no puede acceder a la clase Enumerable (como en WinWrapBasic) –

Cuestiones relacionadas