具有多个值的枚举

Nas*_*sif 3 c# enums

在我的模型中我有这个代码

public enum StockStatus
{       
    Origin= 1,

    [Display(Name = "In Transit")]
    InTransit = 5,
    [Display(Name = "Port Louis")]
    PortLouis = 6,
    Yard = 7,
    Requested = 8
}
Run Code Online (Sandbox Code Playgroud)

我需要能够为 Origin 提供多个值,如下所示

public enum StockStatus
{       
    Origin= 1,2,3,4,        

    [Display(Name = "In Transit")]
    InTransit = 5,
    [Display(Name = "Port Louis")]
    PortLouis = 6,
    Yard = 7,
    Requested = 8
}
Run Code Online (Sandbox Code Playgroud)

我知道这样不行,但我需要能够这样做

kur*_*a88 6

您需要将枚举作为标志,并且该值需要按位唯一(2 的幂)。

[Flags]
public enum MyEnum
{

    Origin= no1 | no2 | no3 | no4,

    no1 = 1,
    no2 = 1 << 1,
    no3 = 1 << 2,
    no4 = 1 << 3,

    [Display(Name = "In Transit")]
    InTransit = 1 << 4,
    [Display(Name = "Port Louis")]
    PortLouis = 1 << 5,
    Yard = 1 << 6,
    Requested = 1 << 7
}
Run Code Online (Sandbox Code Playgroud)