.NET中是否有内置函数可以重复一个字符串或字符?

54

C#中是否有一个函数可以返回给定字符或字符串的x倍?还是我必须自己编写代码实现该功能?


1
这不是一个完全的重复:这是一种方法来做到这一点。Dim line As String = New [String]("-"c, 100) - KevinDeus
2
迟做总比不做好。我投票支持重新开放此内容,因为它 不是 与链接的可能重复内容相同。在C#中重复字符的最佳方法并没有涵盖重复字符串,而只涉及字符! - Nope
可能是Can I "multiply" a string (in C#)?的重复问题。 - Deanna
6
可能是如何简单地返回一个重复X次的字符串?的重复问题。 - Pekka
5个回答

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

返回

"abab"

并且

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

返回

"aa"

3
以下是稍微更正确的答案-- 对于字符使用本地的'join' (1),对于字符串使用string.Concat(2) - drzaus
如果代码已经使用了Linq,请使用string.Join("", Enumerable.Repeat("ab", 2).ToArray()); - Sanjay
对于字符,使用新的string(char ch, int count)更好。改进的方法是使用Concat。 - Corniel Nobel

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

返回

"abab"


如果代码已经使用了Linq,请使用string.Concat(Enumerable.Repeat("ab", 2).ToArray()); - Sanjay

32

对于字符串,你应该确实使用Kirk的解决方案:

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

但对于字符,您最好使用内置的(更有效)字符串构造函数:

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

1
提及正确重复字符的最佳方式,将获得1分。您可以查看https://dev59.com/9XRC5IYBdhLWcg3wFdFx。祝你好运。 - QMaster

5
最佳解决方案是使用内置的字符串函数:
 Strings.StrDup(2, "a")

不是最好的,因为您需要引用和导入Microsoft.VisualBasic。 - HasanG
对我来说,这是最好的,因为我正在一个项目中使用VB! - Dejan Dozet

4

1
我认为这仅适用于字符。 - HasanG
是的,你说得对,这仅仅是用于字符复制。 - Eli Dagan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接