在一行调用实例方法之前,如何将Enum强制转换为其基础类型?

时间:2019-10-18 19:32:37

标签: c# lambda enums int string-formatting

尝试尝试时,我遇到了这个答案的需求:

(int)myEnum.ToString("D2");

这行不通,因为它认为我正在尝试从.ToString("D2")投射字符串返回值

当然很容易做到:

var myInt = (int)myEnum;
myInt.ToString("D2");

但是,我想知道是否存在单行解决方案,以便可以在lambda中使用它,即

// Assuming this worked how I wanted it to
myEnums.Select(myEnum => (int)myEnum.ToString("D2"))

这里的目标是将myEnum的IEnumerable转换为左填充零的整数

1 个答案:

答案 0 :(得分:2)

您必须添加另一对括号:

var x = ((int)myEnum).ToString("D2");

i。 e。您的linq查询如下所示:

var x = myEnums.Select(myEnum => ((int)myEnum).ToString("D2"));