c# - 在 C# 中重复一个字符的最佳方法

标签 c# .net string

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

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

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

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

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

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

  1. LINQ 版本只有两行,这很好。但是调用 Repeat 和 Aggregate 是否会不必要地消耗时间/资源?

  2. StringBuilder 版本非常清晰,但是 StringBuilder 类是否速度较慢?

  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; 
}

最佳答案

这个怎么样:

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

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

或者更好:

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

关于c# - 在 C# 中重复一个字符的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/411752/

相关文章:

c# - 创建通用扩展方法时我们扩展了什么?

c# - 在 c# 代码中编写 sql 查询的最佳实践是什么

c# - 使用 Json.net 循环 json 数组中的对象 [C#]

c# - 任务和垃圾收集存在哪些问题?

javascript - 仅从不同的基本 url 获取子字符串

c++ - 在 std::string 上使用 _T

java - java用来在内部存储字符串的字符集是哪个?

c# - 如何在新线程中强制执行

.net - .NET 之前的任何语言中是否有类似 Linq 的功能?

.net - Oracle 尝试加载格式不正确的程序