【问题标题】:Enum in C# and foreach [duplicate]C#和foreach中的枚举[重复]
【发布时间】:2011-04-24 18:37:19
【问题描述】:

可能重复:
C#: How to enumerate an enum?

大家好,

我有一个枚举

public enum AttributeType
    {
        TextField = 1, 
        TextArea = 2,
        Date = 4, 
        Boolean = 8
    }

我想foreach这个枚举并以这种格式创建一个对象数组

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

【问题讨论】:

标签: c#


【解决方案1】:

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

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

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

或使用匿名类型:

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

【讨论】:

  • 你真的不需要那个(AttributeType[]) :)
  • @leppie:鉴于 Enum.GetValues 只返回 Array,您要么需要它,要么需要调用 Cast。
  • 啊,你和往常一样是对的,我在想(错误地)它会是IEnumerable<object>反正......(哎呀)。
猜你喜欢
  • 2023-03-26
  • 1970-01-01
  • 2016-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-01
  • 2013-08-03
  • 1970-01-01
相关资源
最近更新 更多