内插字符串中的最佳 Environment.Newline
Optimal Environment.Newline in interpolated string
我想在一个字符串中插入多个新行,所以我使用了一个内插字符串作为我选择的格式机制,这应该非常快。
示例:
string mystring = $"one line{Environment.NewLine}{Environment.NewLine}{Environment.NewLine}another line{Environment.NewLine}end";
现在可以了,但是我怎样才能更好地在内插字符串中插入多个 Environment.Newline
;例如,如果我想要 15,这会很麻烦。
我知道 string.Replace(
、string.Format()
和连接 Environment.NewLine + Environment.NewLine + Environment.NewLine
以及带空行的文字字符串 @"stuff"
但是这不是问题(替代方案)而是如何插入倍数,比如我
的假例子
string mystring = $"one line{Environment.NewLine(3)}another line{Environment.NewLine}end text";
您可以编写一个简单的辅助方法来获取重复的字符串,然后调用它:
static string Repeat(string input, int count)
{
var result = new StringBuilder();
for (var i = 0; i < count; i++) result.Append(input);
return result.ToString();
}
string mystring =
$"one line{Repeat(Environment.NewLine, 3)}another line{Environment.NewLine}end";
如果你不想显式调用另一个函数,你可以写一个扩展方法:
public static class Extensions
{
public static string Repeat(this string input, int count)
{
if (input == null) return null;
if (count < 1) return string.Empty;
var result = new StringBuilder();
for (var i = 0; i < count; i++) result.Append(input);
return result.ToString();
}
}
然后语法更简单:
string mystring =
$"one line{Environment.NewLine.Repeat(3)}another line{Environment.NewLine}end";
也许不是最优雅的解决方案,但您可以从内插字符串中调用方法。该方法可以return指定数量的新行。
private string NewLines(int lines)
{
return new StringBuilder().Insert(0,$"{Environment.NewLine}, lines").ToString();
}
然后打电话
string mystring = $"one line{NewLines(3)}another line{NewLines(1)}end text";
Linq 可以做到这一点:
var fifteenNewlines = string.Concat(Enumerable.Repeat(Environment.NewLine, 15));
我想在一个字符串中插入多个新行,所以我使用了一个内插字符串作为我选择的格式机制,这应该非常快。
示例:
string mystring = $"one line{Environment.NewLine}{Environment.NewLine}{Environment.NewLine}another line{Environment.NewLine}end";
现在可以了,但是我怎样才能更好地在内插字符串中插入多个 Environment.Newline
;例如,如果我想要 15,这会很麻烦。
我知道 string.Replace(
、string.Format()
和连接 Environment.NewLine + Environment.NewLine + Environment.NewLine
以及带空行的文字字符串 @"stuff"
但是这不是问题(替代方案)而是如何插入倍数,比如我
string mystring = $"one line{Environment.NewLine(3)}another line{Environment.NewLine}end text";
您可以编写一个简单的辅助方法来获取重复的字符串,然后调用它:
static string Repeat(string input, int count)
{
var result = new StringBuilder();
for (var i = 0; i < count; i++) result.Append(input);
return result.ToString();
}
string mystring =
$"one line{Repeat(Environment.NewLine, 3)}another line{Environment.NewLine}end";
如果你不想显式调用另一个函数,你可以写一个扩展方法:
public static class Extensions
{
public static string Repeat(this string input, int count)
{
if (input == null) return null;
if (count < 1) return string.Empty;
var result = new StringBuilder();
for (var i = 0; i < count; i++) result.Append(input);
return result.ToString();
}
}
然后语法更简单:
string mystring =
$"one line{Environment.NewLine.Repeat(3)}another line{Environment.NewLine}end";
也许不是最优雅的解决方案,但您可以从内插字符串中调用方法。该方法可以return指定数量的新行。
private string NewLines(int lines)
{
return new StringBuilder().Insert(0,$"{Environment.NewLine}, lines").ToString();
}
然后打电话
string mystring = $"one line{NewLines(3)}another line{NewLines(1)}end text";
Linq 可以做到这一点:
var fifteenNewlines = string.Concat(Enumerable.Repeat(Environment.NewLine, 15));