2010-11-06 63 views
38

在c#中有一個函數返回給定字符或字符串的x倍。或者我必須編碼?是否有一個內置的函數在.net中重複字符串或字符?

+4

這不符合OP所要求的重複*字符串*(除了重複字符)。投票重新打開。 – 2010-11-06 22:34:45

+1

這不是一個確切的重複:這是一個方法來做到這一點。 Dim line As String = New [String](「 - 」c,100) – KevinDeus 2012-04-28 00:49:49

+2

好吧,遲到比從未好。我投票重新打開它,因爲它不是**重複鏈接的可能重複。 [重複在C#中的字符的最佳方式](http://stackoverflow.com/questions/411752/best-way-to-repeat-a-character-in-c-sharp)不**覆蓋重複字符串但只有角色! – Nope 2012-12-13 13:09:46

回答

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

返回

"abab" 

而且

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

返回

"aa" 
+3

稍微更正確的答案下面 - 使用本機'加入'的字符[(1)](http://stackoverflow.com/a/19248082/1037948),或'string.Concat'對於字符串[(2)](http://stackoverflow.com/a/15390834/1037948) – drzaus 2014-01-14 17:54:51

+0

如果代碼已經使用Linq,請使用'string.Join(「,Enumerable.Repeat(」ab「,2).ToArray ());' – Sanjay 2014-04-04 12:10:23

+0

對於字符所提到的新字符串(char ch,int count)更好。對此的改進可能是使用Concat。 – 2017-09-21 11:35:11

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

回報

「ABAB」

+4

1的更好的解決方案 – Keith 2013-03-30 03:34:26

+0

如果代碼已經使用LINQ,使用'string.Concat(Enumerable.Repeat( 「AB」,2).ToArray());' – Sanjay 2014-04-04 12:13:10

23

對於字符串你確實應該使用柯克的解決方案:

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

然而,對於字符,你還不如用內置的(更有效)的字符串構造函數:

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

應得1分提起重複字符的正確方法。你也可以看到http://stackoverflow.com/questions/411752/best-way-to-repeat-a-character-in-c-sharp。祝你好運。 – QMaster 2014-12-09 15:28:59

3
new String('*', 5) 

小號ee Rosetta Code

+0

我認爲這隻適用於字符 – 2017-06-23 11:17:30

相關問題