有没有一种简单的方法返回重复X次的字符串?

25 浏览
0 Comments

有没有一种简单的方法返回重复X次的字符串?

我正在尝试根据项目的深度在字符串前插入一定数量的缩进,我想知道是否有一种方法可以重复X次返回一个字符串。 示例:

string indent = "---";
Console.WriteLine(indent.Repeat(0)); //would print nothing.
Console.WriteLine(indent.Repeat(1)); //would print "---".
Console.WriteLine(indent.Repeat(2)); //would print "------".
Console.WriteLine(indent.Repeat(3)); //would print "---------".

admin 更改状态以发布 2023年5月20日
0
0 Comments

如果您正在使用.NET 4.0,您可以使用string.ConcatEnumerable.Repeat结合使用。

int N = 5; // or whatever
Console.WriteLine(string.Concat(Enumerable.Repeat(indent, N)));

否则,我会选择像Adam的答案这样的方案。

我通常不推荐使用Andrey的答案,原因是使用ToArray()调用会引入多余的开销,而Adam建议使用的StringBuilder方法可以避免这种开销。尽管如此,至少它可以在不需要.NET 4.0的情况下工作;而且它很快捷简单(如果效率不是太大关注的话)。

0
0 Comments

如果您只想重复相同的字符,可以使用接受字符和重复次数的字符串构造函数new String(char c, int count)。 \n例如,要重复连字符五次: \n

string result = new String('-', 5);
Output: -----

0