如何在C#中按值获取Enum对象?

mik*_*k-t 5 c# enums object helper enumerable

我最近遇到了一个需要按值获取Enum对象的情况(通过EF CodeFirst保存),这是我的枚举:

public enum ShipmentStatus {
  New = 0,
  Shipped = 1,
  Canceled = 2
}
Run Code Online (Sandbox Code Playgroud)

所以我需要ShipmentStatus.Shipped通过值1获得对象.

那我该怎么做呢?

Ale*_*ell 9

这应该工作(只是将int值转换为enum类型):

int _val = 1;
ShipmentStatus _item = (ShipmentStatus)_val;
Run Code Online (Sandbox Code Playgroud)

请注意,如果未定义枚举,则可能会导致错误.


mid*_*pat 7

为什么不使用这个内置功能?

ShipmentStatus shipped = (ShipmentStatus)System.Enum.GetValues(typeof(ShipmentStatus)).GetValue(1);
Run Code Online (Sandbox Code Playgroud)