通过传递参数查找枚举值

时间:2009-12-15 04:41:04

标签: c# asp.net enums

我有一个这样的枚举:

public enum Priority
{
   Low = 0,
   Medium = 1,
   Urgent = 2 
}

我希望通过Priority.Low传递来获取Enum.GetEnumVar(Priority,0),这应该返回Priority.Low

我该如何实现?

提前谢谢。

2 个答案:

答案 0 :(得分:5)

只需将其转换为 enum 类型:

int value = 0;
Priority priority = (Priority)value;
// priority == Priority.Low

请注意,您可以将任何int强制转换为优先级,而不仅仅是那些名称为(Priority)42的有效。

答案 1 :(得分:2)

像这样:

Priority fromInt = (Priority)0;
Assert.That(fromInt, Is.EqualTo(Priority.Low));

此外,这也有效:

Priority fromString = (Priority)Enum.Parse(typeof(Priority), "Low");
Assert.That(fromString, Is.EqualTo(Priority.Low));