【问题标题】:How to extract the values of all of the constants in an enum - into a char array?如何将枚举中所有常量的值提取到 char 数组中?
【发布时间】:2015-10-28 03:33:27
【问题描述】:

是否可以将enum 中的值提取到Char[]

我有Enum

enum eTypeLanguage { typed = 'T', functional = 'F' }

如何提取值eTypeLanguageChar数组?

【问题讨论】:

  • @CodeCaster 将Enum 转换为Char 数组。
  • 我要转换所有字段
  • 我认为您对这实际上在做什么感到困惑,如果您这样做 Enum.GetUnderlyingType(typeof(YourEnum)) 它会返回 int32
  • @Sayse 但它是works。 :-)
  • 也许纯属侥幸:) 只是希望向操作人员表明他们实际上并没有使用字符

标签: c# .net c#-4.0 enums


【解决方案1】:

您似乎正在寻找这个(它返回string[]):

Enum.GetNames(typeof(eTypeLanguage));
//returns: typed, functional

如果您正在寻找值('T'、'F'),那么您可以这样做(这不会为您的枚举抛出 System.InvalidCastException):

 var values = Enum.GetValues(typeof(eTypeLanguage))
                  .Cast<eTypeLanguage>()
                  .Select(i => (char)i).ToArray();
 //returns: 'T', 'F'

【讨论】:

  • 不,OP 不会询问枚举成员的姓名。
【解决方案2】:

如果要获取所有枚举成员的char值,则需要调用Enum.GetValues,将返回值强制转换为实际的枚举类型,然后将每个成员从其枚举类型强制转换为char

var values = Enum.GetValues(typeof(eTypeLanguage))
                 .Cast<eTypeLanguage>()
                 .Select(e => (char)e)
                 .ToArray();

【讨论】:

  • 抱歉,我错过了这一点!仍然,如果他们有整数,它可能无法按预期工作:)(不是他们应该)..
  • @MeuChapeu 已编辑,显然您需要将Enum.GetValues() 响应转换为实际的枚举类型。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2011-04-18
  • 2015-08-21
  • 2011-01-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多