2010-11-06 15 views
38

Esiste una funzione in C# che restituisce x volte il dato char o stringa. O devo codificarlo?Esiste una funzione incorporata per ripetere string o char in .net?

+4

Questo non risolve le * stringhe * ripetute come richiesto dall'OP (oltre a ripetere i caratteri.) Votare per riaprire. –

+1

questo non è un duplicato esatto: questo è un modo per farlo. Dim linea As String = New [String] ("-" c, 100) – KevinDeus

+2

Bene, meglio tardi che mai. Ho votato per riaprirlo perché è ** non ** un duplicato di possibili duplicati collegati. [Il modo migliore per ripetere un personaggio in C#] (http://stackoverflow.com/questions/411752/best-way-to-repeat-a-character-in-c-sharp) ** non ** copre stringhe ripetute ma solo personaggi! – Nope

risposta

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

Returns

"abab" 

E

string.Join("", Enumerable.Repeat('a', 2)) 

Consegne

"aa" 
+3

risposte leggermente più corrette di seguito - utilizzare il "join" nativo per i caratteri [(1)] (http://stackoverflow.com/a/19248082/1037948) o 'string.Concat' per le stringhe [(2)] (http://stackoverflow.com/a/15390834/1037948) – drzaus

+0

Se il codice utilizza già Linq, utilizzare 'string.Join (" ", Enumerable.Repeat (" ab ", 2) .ToArray()); ' – Sanjay

+0

Per i caratteri come menzionato, la nuova stringa (char ch, conteggio int) è migliore. Un miglioramento di ciò potrebbe essere l'utilizzo di Concat. –

49
string.Concat(Enumerable.Repeat("ab", 2)); 

restituisce

"abab"

+4

+1 La soluzione più elegante – Keith

+0

Se il codice utilizza già Linq, utilizzare 'string.Concat (Enumerable.Repeat (" ab ", 2) .ToArray());' – Sanjay

23

Per le stringhe si dovrebbe davvero usare la soluzione di Kirk:

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

Tuttavia per i caratteri che si potrebbe anche utilizzare il (più efficiente) stringa costruttore built-in:

new string('a', 2); // returns aa 
+0

1 punto meritato per menzionare il modo corretto di ripetere il carattere. Puoi anche vedere http://stackoverflow.com/questions/411752/best-way-to-repeat-a-character-in-c-sharp. In bocca al lupo. – QMaster

3
new String('*', 5) 

S ee Rosetta Code.

+0

Penso che questo sia solo per char –

Problemi correlati