2011-09-29 27 views
13

Chciałbym powtórzyć zbiór znaków wiele razy. Wiem jak to zrobić za pomocą jednego znaku:Jak powtórzyć zestaw znaków

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

Ale co chciałbym byłoby coś więcej tak:

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

co skutkowałoby:.-.- -.- .-.-.-.-.-.-.

Wiem, że konstruktor łańcuchów nie może tego zrobić, ale czy istnieje jakiś inny sposób w BCL? Inne sugestie?

Dzięki!

+0

możliwe duplikat [Can I „rozmnażajcie się” ciąg (C#)?] (Http://stackoverflow.com/ q/532892/588306) – Deanna

+0

Możliwy duplikat [Czy istnieje prosty sposób na zwrócenie ciągu powtórzonego X razy?) (http://stackoverflow.com/questions/3754582/is-there-an-easy-way- to-return-a-string-repeat-x-number-of-times) –

Odpowiedz

20

Nieznaczne wahania na odpowiedź przez Bala R

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

To jest najczystsze rozwiązanie tego, do czego dążę. Dzięki! –

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

Nigdy nie widziałem klasy Enumerable. Niesamowite +1 –

+0

@RyanBennett, masz na myśli, że nigdy nie korzystałeś z LINQ? :) –

+0

Nie tak - nie wiem, jak byłem w stanie przejść trzy lata i przeoczyć całą klasę ... –

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

Dobra droga, jeśli nie możesz uzyskać dostępu do klasy Enumerable (jak w WinWrapBasic) –

Powiązane problemy