字符串插值 - 重复

15 浏览
0 Comments

字符串插值 - 重复

有没有办法在不重复的情况下多次插值变量?\n例如:\n

var name = "bla";
Console.WriteLine($"foo {name:repeat:2} bar")

\n打印结果为\n

foo blabla bar

\n我特别想要插值多个换行符,而不是像这样在插值模板中多次重复{Environment.NewLine}:\n

$"{Environment.NewLine}{Environment.NewLine}"

0
0 Comments

(String interpolation - repeat)问题的原因是为了避免重复使用相同的字符串,需要通过索引来表示。

解决方法是使用字符串插值或字符串格式化。可以使用以下方法之一来实现:

1. 使用字符串插值:

var name = "bla";
Console.WriteLine($"foo {name}{name} bar");

2. 使用字符串格式化:

var name = "bla";
Console.WriteLine("foo {0}{0} bar", name);
// 或者
var s = String.Format("foo {0}{0} bar", name);

更多关于字符串格式化的信息,请参考String Format

0
0 Comments

(String interpolation - repeat)问题的出现原因是需要重复输出字符串,但在字符串插值中没有直接的重复操作符或内置方法。为了解决这个问题,可以编写一个扩展方法来重复输入的字符串,并在花括号中使用这个方法。

下面是解决方法的示例代码:

public static class StringExtensions
{
    public static string Repeat(this string input, int count)
    {
        return string.Concat(Enumerable.Repeat(input, count));
    }
}
// 使用示例
string name = "John";
int repeatCount = 3;
string repeatedName = $"{name.Repeat(repeatCount)}";
Console.WriteLine(repeatedName);

在上面的代码中,我们定义了一个名为`Repeat`的扩展方法,它接受一个字符串和重复次数作为参数。该方法使用LINQ的`Enumerable.Repeat`方法来重复输入的字符串,并使用`string.Concat`方法将重复的字符串连接在一起。然后,在字符串插值中,我们通过调用`Repeat`方法重复输入的字符串,并将重复的结果赋值给`repeatedName`变量。最后,我们使用`Console.WriteLine`方法输出重复后的字符串。

通过这种方式,我们可以在字符串插值中重复输出字符串,解决了没有重复操作符或内置方法的问题。

0
0 Comments

(String interpolation - repeat)这个问题的出现的原因是希望在字符串插值中重复一个字符串多次。然而,C#的字符串插值功能并没有直接提供这样的选项。

解决方法是通过编写一个扩展方法来实现字符串重复。上述代码中的Repeat方法就是一个示例。该方法接收一个字符串参数s,一个整数参数times,以及一个可选的字符串参数separator。它使用Enumerable.Repeat方法创建一个包含重复字符串的IEnumerable,并使用string.Join方法将这些字符串连接起来。

使用时,可以通过在字符串插值表达式中调用Repeat方法来重复一个字符串。例如,上述代码中的Console.WriteLine语句使用了字符串插值将"foo"、name.Repeat(2)和"bar"连接起来,并输出结果。

这样,就实现了在字符串插值中重复一个字符串多次的功能。

0