在C#中重复字符的最佳方法

在C#中生成t字符串的最佳方式是什么?

我正在学习C#并尝试用不同的方式说同一件事。

Tabs(uint t)是一个返回string t量为t的函数

例如, Tabs(3)返回"ttt"

实现Tabs(uint numTabs)的这三种方法中哪一种最好?

当然,这取决于“最好”的含义。

  • LINQ版本只有两行,这很好。 但是,呼吁重复和聚合不必要的时间/资源消耗?

  • StringBuilder版本非常清晰,但是StringBuilder类以某种方式更慢?

  • string版本是基本的,这意味着它很容易理解。

  • 这根本不重要吗? 他们都是平等的吗?

  • 这些都是帮助我更好地体验C#的问题。

    private string Tabs(uint numTabs)
    {
        IEnumerable<string> tabs = Enumerable.Repeat("t", (int) numTabs);
        return (numTabs > 0) ? tabs.Aggregate((sum, next) => sum + next) : ""; 
    }  
    
    private string Tabs(uint numTabs)
    {
        StringBuilder sb = new StringBuilder();
        for (uint i = 0; i < numTabs; i++)
            sb.Append("t");
    
        return sb.ToString();
    }  
    
    private string Tabs(uint numTabs)
    {
        string output = "";
        for (uint i = 0; i < numTabs; i++)
        {
            output += 't';
        }
        return output; 
    }
    

    那这个呢:

    string tabs = new String('t', n);
    

    其中n是您想要重复字符串的次数。

    或更好:

    static string Tabs(int n)
    {
        return new String('t', n);
    }
    

    在.NET的所有版本中,您都可以重复一个字符串:

    public static string Repeat(string value, int count)
    {
        return new StringBuilder(value.Length * count).Insert(0, value, count).ToString();
    }
    

    重复一个字符, new String('t', count)是你最好的选择。 查看@CMS的答案。


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

    返回

    “ABAB”

    string.Concat(Enumerable.Repeat("a", 2));
    

    返回

    “AA”

    从...

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

    链接地址: http://www.djcxy.com/p/3567.html

    上一篇: Best way to repeat a character in C#

    下一篇: Should 'using' directives be inside or outside the namespace?