为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

小怪兽爱吃肉 2019-09-21 11:38:12
我试图根据项目深度在字符串之前插入一定数量的缩进,并且我想知道是否有办法返回重复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 "---------".
查看完整描述

3 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

如果您使用的是.NET 4.0,则可以string.Concat与一起使用Enumerable.Repeat。


int N = 5; // or whatever

Console.WriteLine(string.Concat(Enumerable.Repeat(indent, N)));

否则,我会接受亚当的回答。


我通常不建议使用Andrey的答案的原因仅仅是,该ToArray()调用会引入多余的开销,StringBuilder而Adam提出的方法可以避免这种开销。就是说,至少它不需要.NET 4.0就可以工作。而且它既快捷又容易(如果效率不是您所关注的重点,那也不会杀死您)。


查看完整回答
反对 回复 2019-09-21
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

public static class StringExtensions

{

    public static string Repeat(this string input, int count)

    {

        if (!string.IsNullOrEmpty(input))

        {

            StringBuilder builder = new StringBuilder(input.Length * count);


            for(int i = 0; i < count; i++) builder.Append(input);


            return builder.ToString();

        }


        return string.Empty;

    }

}


查看完整回答
反对 回复 2019-09-21
  • 3 回答
  • 0 关注
  • 398 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信