【发布时间】:2011-09-12 20:34:21
【问题描述】:
有没有一种简单的方法可以使用str * 2 之类的东西多次显示字符串?
也就是说,有没有办法:
int numTimes = 500;
String str = "\n";
String body = ""
for (int i = 0; i < numTimes; i++)
{
body = "Hello" + str;
}
不需要for循环?
【问题讨论】:
有没有一种简单的方法可以使用str * 2 之类的东西多次显示字符串?
也就是说,有没有办法:
int numTimes = 500;
String str = "\n";
String body = ""
for (int i = 0; i < numTimes; i++)
{
body = "Hello" + str;
}
不需要for循环?
【问题讨论】:
不。没有这样的运营商。
你可以的
body = "Hello" + String.Join("", Enumerable.Range(0, numTimes).Select(i => str));
但这仍在内部循环。
【讨论】:
str。
Enumerable.Repeat,所以我不明白为什么会有Select。显然,既然您使用的是Enumerable.Range,那么您确实需要Select。
Enumerable.Repeat() 我忘记了它的存在。这是一种非常合适的情况。
String.Concat(...) 比 `String.Join("", ...) 更简洁一些
答案是否定的,而不是简单地隐藏循环或其他一些人为的例子。
【讨论】:
是和不是。 不,不是开箱即用。 是的,您可以制作一个扩展方法来非常轻松地做到这一点。 在此处查看有关字符串扩展方法的线程C# String Operator Overloading
它仍然是循环的,所以如果可能的话,你应该使用 StringBuilder,而不是纯粹的串联,特别是如果你不知道它会循环多少次。字符串是不可变的,因此 500 个循环是内存中的大量临时字符串。
【讨论】: