有没有办法用普通的int填充nullable int和零?
myInt.ToString("D3")
似乎不适用于nullale int,但对于我当前的项目,我觉得我需要使用可空int
来获取我的数组中的null
值而不是0作为默认值。
答案 0 :(得分:4)
这是因为int?
实际上是Nullable<T>
,其中T
是int
。
致电ToString
会在Nullable
结构上调用该内容,而不是int
。 Nullable<T>
不了解ToString
int
的重载次数。
您必须先获取整数值:
myInt.GetValueOrDefault(0).ToString("D3")
答案 1 :(得分:2)
int
从未领先零,它只有一个值。 ìnt
的字符串表示可以包含它们。如果null-coalescing运算符没有值,则可以使用null-coalescing运算符将nullable-int转换为0:
int? nullableInt = null;
string number = (nullableInt ?? 0).ToString("D3"); // 000
或使用String.PadLeft
:
number = (nullableInt ?? 0).ToString().PadLeft(3, '0');
答案 2 :(得分:0)
您必须对值执行该操作:
myInt.Value.ToString("D3")
示例:
int? myInt = 3;
Console.WriteLine(myInt.Value.ToString("D3")); // Outputs 003