C# 使用$";向字符串添加零填充;{x:Dn}";符号
我非常喜欢用新的$“”符号在c#中格式化字符串。因此,我想使用这个符号将一些前导零预挂起为整数C# 使用$";向字符串添加零填充;{x:Dn}";符号,c#,string,string-formatting,C#,String,String Formatting,我非常喜欢用新的$“”符号在c#中格式化字符串。因此,我想使用这个符号将一些前导零预挂起为整数 var i = 10; var s = $"{i:D4}"; 这项工作做得很好,结果是0010 但是如果零的数量或总长度是可变的呢。我如何使用这种新的符号来实现这一点 我在找这样的东西: var TotalLength = 4; // IRL it would be a calculated value. var format = "D" + TotalLength.ToString(); var
var i = 10;
var s = $"{i:D4}";
这项工作做得很好,结果是0010
但是如果零的数量或总长度是可变的呢。我如何使用这种新的符号来实现这一点
我在找这样的东西:
var TotalLength = 4; // IRL it would be a calculated value.
var format = "D" + TotalLength.ToString();
var i = 10;
var s = $"{i:format}";
我试过了,但也不起作用
$"{i:{format}}"
有什么建议吗?或者-混合你的想法和Rob的方法:
var TotalLength = 4; // IRL it would be a calculated value.
var format = TotalLength.ToString("'D'0");
var i = 10;
var s = $"{i.ToString(format)}";
根据给出的建议,我提出了两种扩展方法:
public static String GetDnFormat(this int i)
{
return ((int)Math.Log10(i) + 1).ToString("'D'0");
}
public static String ToDnFormat(this int i, int source)
{
var format = source.GetDnFormat();
return i.ToString(format);
}
用法:
var Page = 10;
var PageCount = 124;
var PageLabel = $"{Page.ToDnFormat(PageCount)}/{PageCount}"; // result : 010/124
您可以尝试这样做:
var s=$“{i.ToString().PadLeft(totalLength,'0')}”代码>或:var s=i.ToString(新字符串('0',总长度))
;