c#和foreach中的枚举enum


Enum in C# and foreach

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
C#: How to enumerate an enum?

嗨,大家好,

我有一个枚举

1
2
3
4
5
6
7
public enum AttributeType
    {
        TextField = 1,
        TextArea = 2,
        Date = 4,
        Boolean = 8
    }

我要对该枚举进行foreach,并以这种格式生成它的对象数组

1
2
3
4
5
object data = new object[]
{
   // new object[] { 1,"TextField"}
   new object[] { enumValue, enumText}
};


好吧,这样就可以了(假设.NET 3.5):

1
2
3
4
var allValues = (AttributeType[]) Enum.GetValues(typeof(AttributeType));

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

或使用匿名类型:

1
2
var array = allValues.Select(value => { Value = value, Name = value.ToString() })
                     .ToArray();