\t
C# で文字列を生成する最良の方法は何ですか?
私は C# を学習しており、同じことを表現するためのさまざまな方法を試しています。
Tabs(uint t)
は、 'sの量string
を返す関数です。t
\t
たとえば、Tabs(3)
返品"\t\t\t"
これら 3 つの実装方法のうちどれがTabs(uint numTabs)
最適ですか?
もちろん、「最良」が何を意味するかによって異なります。
LINQ バージョンは 2 行だけなので、便利です。しかし、Repeat と Aggregate の呼び出しは、不必要に時間やリソースを消費していませんか?
バージョン
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;
}
ベストアンサー1
これはどうですか:
string tabs = new string('\t', n);
n
文字列を繰り返す回数を指定します。
あるいはもっと良いのは:
static string Tabs(int n)
{
return new string('\t', n);
}