在我的模型中我有这样的代码
public enum StockStatus
{
Origin= 1,
[Display(Name = "In Transit")]
InTransit = 5,
[Display(Name = "Port Louis")]
PortLouis = 6,
Yard = 7,
Requested = 8
}
我需要能够拥有多个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
}
我知道这不好,但我需要能够这样做
发布于 2018-08-28 14:57:26
您需要将枚举作为标志,并且值必须是按位唯一的(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
}
发布于 2018-08-28 15:01:32
你必须这样做:
class Status
{
static void Main(string[] args)
{
int code = 1;
string name;
Dictionary<int, string> StatusMap = new Dictionary<int, string>
{
{ 1, "ORIGIN" },
{ 2, "ORIGIN" },
{ 3, "ORIGIN" },
{ 4, "IN TRANSIT" }
};
if (!StatusMap.TryGetValue(code, out name))
{
Console.WriteLine(name);
// Error handling here
}
}
}
// or a method like this
public static string GetStatus(int code)
{
string name;
if (!StatusMap.TryGetValue(code, out name)
{
// Error handling here
}
return name;
}
发布于 2018-08-28 15:04:51
不能将逗号分隔值与枚举一起使用。
你可以这样做:
public class StockStatus
{
public List<int> Origin= new List<int>(){1,2,3,4};
[Display(Name = "In Transit")]
public List<int> InTransit = new List<int>(){ 5};
[Display(Name = "Port Louis")]
public List<int> PortLouis = new List<int>(){ 6};
public List<int> Yard = new List<int>(){ 7};
public List<int> Requested = new List<int>(){ 8};
}
这样,您将能够拥有多个Origin值
https://stackoverflow.com/questions/52051769
复制相似问题