我有一些枚举,如:OneEnum,TwoEnum,ThreeEnum等。 根据用户的输入,我想打印相应枚举的内容。
我使用类似下面的foreach来做到这一点。
foreach(OneEnum i in Enum.GetValues(typeof(OneEnum)))
{
Console.WriteLine("{0}", i);
}
由于我有许多不同的枚举,我试图创建一种方法来做到这一点,而没有很多if语句检查枚举类型。
在某些时候,我得到一个像enumType = "OneEnum"
或enumType = "TwoEnum"
等字符串,这是枚举的类型。
有没有办法将字符串的值作为foreach中的枚举类型传递?
由于
答案 0 :(得分:6)
您正在寻找Type.GetType
foreach(Enum i in Enum.GetValues(Type.GetType("Your.Namespace.OneEnum"))
{
Console.WriteLine("{0}", i);
}
答案 1 :(得分:1)
您可以通过反思获得类型:
foreach(Enum i in Enum.GetValues(Type.GetType(typeName)))
{
Console.WriteLine("{0}", i);
}
您必须确保typeName
是一个程序集限定名称。