首页 > 解决方案 > 将枚举转换为两位数的字符串

问题描述

我在这里有一个将 an 转换enum为 a的问题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".....

标签: c#enums

解决方案


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

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

推荐阅读