Enum in C#和foreach

Ami*_*ail 16 c#

可能重复:
C#:如何枚举枚举?

大家好,

我有一个Enum

public enum AttributeType
    {
        TextField = 1, 
        TextArea = 2,
        Date = 4, 
        Boolean = 8
    }
Run Code Online (Sandbox Code Playgroud)

我想要预先知道这个枚举,并以这种格式创建一个对象数组

object data = new object[]
{
   // new object[] { 1,"TextField"}
   new object[] { enumValue, enumText}
};
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 26

好吧,这样做(假设.NET 3.5):

var allValues = (AttributeType[]) Enum.GetValues(typeof(AttributeType));

var array = allValues.Select(value => new object[] { value, value.ToString() })
                     .ToArray();
Run Code Online (Sandbox Code Playgroud)

或使用匿名类型:

var array = allValues.Select(value => { Value = value, Name = value.ToString() })
                     .ToArray();
Run Code Online (Sandbox Code Playgroud)

  • @leppie:你需要那个或者调用Cast,因为Enum.GetValues只返回Array. (2认同)