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 }
}; |
- @闭门人:哪个职位的副本?我在网上搜索了我的问题,结果是第一个。也许你应该添加到"原始"帖子的链接。
- 这可能是重复的:stackoverflow.com/questions/105372/how-do-i-enumerate-an-enu‌&8203;m
好吧,这样就可以了(假设.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(); |
- 你真的不需要那个(AttributeType[])。
- @leppie:如果给定enum.getValues只返回数组,您要么需要它,要么需要调用cast。
- 啊,你是对的,像往常一样,我在想(错误地)无论如何都会是IEnumerable……(OOPS)。