2011-09-29 19 views
13

Vorrei ripetere un insieme di caratteri più volte. So come si fa con un singolo carattere:Come ripetere un set di caratteri

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

Ma quello che mi piacerebbe sarebbe qualcosa di più simile a questo:

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

che si tradurrebbe in:. -.-.-- .-.-.-.-.-.-.

So che il costruttore di stringhe non può farlo, ma esiste un altro modo all'interno del BCL? Altri suggerimenti?

Grazie!

+0

possibile duplicato del [Posso “moltiplicare” una stringa (in C#)?] (Http://stackoverflow.com/ q/532892/588306) – Deanna

+0

Possibile duplicato di [C'è un modo semplice per restituire una stringa ripetuta X volte il numero?] (http://stackoverflow.com/questions/3754582/is-there-an-easy-way- to-return-a-string-repeat-x-number-of-times) –

risposta

20

Una leggera variazione sulla risposta da Bala R

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

Questa è la soluzione più pulita per quello che sto cercando. Grazie! –

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

Non ho mai visto la classe Enumerable. Impressionante +1 –

+0

@RyanBennett, vuoi dire che non hai mai usato LINQ? :) –

+0

Non è così - non sono sicuro di come sono stato in grado di andare per tre anni e trascurare un'intera classe ... –

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

Bel modo, se non è possibile accedere alla classe Enumerable (come in WinWrapBasic) –

Problemi correlati