我有一个字符串格式,其中包含两个整数变量,每个变量都需要格式化为可变长度:
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"
现在我只能使用整数变量来获得所需的格式.ToString()
方法:
var xString = x.ToString(xStringFormat);
var yString = y.ToString(yStringFormat);
return $"{xString}-{yString}";
但这似乎是一种开销,因为字符串插值支持格式 {var:format}。有没有办法只用字符串插值来获取我的字符串,而不使用 x 和 yToString()
?
我不确定我是否理解这个问题,但是格式说明符string.Format
因此,字符串插值是文本的 - 它们不接受变量。
您可以使用静态格式说明符:
$"{x:0000000}-{y:000}"
或诉诸美好的旧时光string.Format
:
string.Format(
$"{{0:{new string('0', xFormatDigitCount)}}}-{{1:{new string('0', yFormatDigitCount)}}}",
x,
y);
Edit:
基于weston https://stackoverflow.com/users/360211/weston's answer https://stackoverflow.com/a/34678703/402366:
$"{x.ToString($"D{xFormatDigitCount}")}-{y.ToString($"D{yFormatDigitCount}")}"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)