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

在C#中生成\\t字符串的最佳方法是什么 数组

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

Tabs(uint t)是一个函数,该函数返回t等于\\tstring 学习

例如Tabs(3)返回"\\t\\t\\t" ui

这三种实现Tabs(uint numTabs)方式中哪种最好? this

固然,这取决于“最佳”的含义。 spa

  1. LINQ版本只有两行,这很好。 可是,重复和聚合的调用是否没必要要地浪费时间/资源? .net

  2. StringBuilder版本很是清晰,但StringBuilder类的速度是否稍慢? code

  3. string版本是基本的,这意味着易于理解。 资源

  4. 不要紧吗? 他们都平等吗? 字符串

这些都是能够帮助我更好地理解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; 
}

#1楼

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

退货

“阿巴布”

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

退货

“ aa”

从...

是否有内置函数在.net中重复字符串或char?


#2楼

使用String.ConcatEnumerable.Repeat将比使用String.Join

public static Repeat(this String pattern, int count)
{
    return String.Concat(Enumerable.Repeat(pattern, count));
}

#3楼

假设您要重复n次,能够使用;

String.Empty.PadRight(n,'\t')

#4楼

var str = new string(Enumerable.Repeat('\t', numTabs).ToArray());

#5楼

我知道这个问题已经有5年了,可是有一种简单的方法能够重复在.Net 2.0中使用的字符串。

要重复一个字符串:

string repeated = new String('+', 3).Replace("+", "Hello, ");

退货

“你好你好你好, ”

要将字符串重复做为数组:

// Two line version.
string repeated = new String('+', 3).Replace("+", "Hello,");
string[] repeatedArray = repeated.Split(',');

// One line version.
string[] repeatedArray = new String('+', 3).Replace("+", "Hello,").Split(',');

退货

{“你好你好你好”, ””}

把事情简单化。

相关文章
相关标签/搜索