用两位数将Enum转换为String

时间:2019-06-25 21:46:01

标签: c# enums

我在将enum转换为string时遇到一个问题,但是我需要用零个2位数字填充转换。 例子

public enum System
{
    Unknown = 0,
    Mirror = 3,
    Order = 17
}

输出将是此“ 03”

在下面的示例中有效

int value;
value = 3;
Console.WriteLine(value.ToString("D2"));
// Displays 03

但使用enum无效

Console.WriteLine(SourceSystem.Mirror.ToString("D2"));

出现此错误

System.FormatException 
Message=Format String can be only "G", "g", "X", "x", "F", "f", "D" or "d".....

1 个答案:

答案 0 :(得分:3)

System.Mirror当前的类型为enum,这就是为什么不能在其上调用ToString("D2")的原因,因为您需要在类型为int的变量上调用此方法。因此,您应该做的是首先将枚举类型转换为int,然后像这样对转换的变量调用ToString("D2")

Console.WriteLine(((int) System.Mirror).ToString("D2"));