使用 $"{x:Dn}" 符号向字符串添加零填充
Add zero padding to string using $"{x:Dn}" notation
我非常喜欢在 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 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
我非常喜欢在 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 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