tse*_*mer 5 c# string-interpolation c#-6.0
我有一个字符串格式,其中包括两个整数变量,每个变量都需要格式化为可变长度:
int x = 1234;
int y = 42;
// Simplified, real values come from method outputs, so must use the variables:
int xFormatDigitCount = 7;
int yFormatDigitCount = 3;
var xStringFormat = new string('0', xFormatDigitCount); // "0000000"
var yStringFormat = new string('0' ,yFormatDigitCount); // "000"
Run Code Online (Sandbox Code Playgroud)
现在我只能使用整数变量的.ToString()
方法获得所需的格式:
var xString = x.ToString(xStringFormat);
var yString = y.ToString(yStringFormat);
return $"{xString}-{yString}";
Run Code Online (Sandbox Code Playgroud)
但这似乎是一种开销,因为字符串插值支持格式{var:format}.有没有办法让我的字符串只用字符串插值,而不使用x和y ToString()
?
有没有一种方法可以仅通过字符串插值来获取我的字符串,而不使用 x 和 y 的 ToSTring()
我不相信,但由于以下原因,它可以变得更加干净ToString("Dx")
:
合而为一(嵌套插值):
public string Format(int x, int y, int xDigitCount, int yDigitCount)
{
return $"{x.ToString($"D{xDigitCount}")}-{y.ToString($"D{yDigitCount}")}";
}
Run Code Online (Sandbox Code Playgroud)
Stack Overflow 语法高亮跟不上,所以看起来很奇怪,但在 VS 中是这样的:
归档时间: |
|
查看次数: |
2789 次 |
最近记录: |