什么\t是在C#中生成字符串的最佳方法
我正在学习C#并尝试不同的方式来说同样的事情.
Tabs(uint t)是返回的功能string与t的量\t的
例如Tabs(3)返回"\t\t\t"
这三种实施方式中哪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(); …Run Code Online (Sandbox Code Playgroud) 我试图在一个基于项深度的字符串之前插入一定数量的缩进,我想知道是否有一种方法可以重复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 "---------".
Run Code Online (Sandbox Code Playgroud) 假设我有一个字符串,例如,
string snip = "</li></ul>";
Run Code Online (Sandbox Code Playgroud)
我想基本上写多次,取决于一些整数值.
string snip = "</li></ul>";
int multiplier = 2;
// TODO: magic code to do this
// snip * multiplier = "</li></ul></li></ul>";
Run Code Online (Sandbox Code Playgroud)
编辑:我知道我可以轻松编写自己的函数来实现这一点,我只是想知道是否有一些我不知道的奇怪的字符串运算符
是否有内置函数或更有效的方法将字符添加到字符串X次?
例如,以下代码将向字符串添加"0"字符5次:
int count = 5;
char someChar = '0';
string myString = "SomeString";
for(int i=0;i<count;i++)
{
myString = someChar + myString;
}
Run Code Online (Sandbox Code Playgroud)