【发布时间】:2015-07-16 21:18:40
【问题描述】:
我有以下枚举
[Flags]
public enum WeekDays
{
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
Sunday = 64
}
在用户界面中,用户可以选择特定的日子:例如星期一、星期二、星期三。星期一、星期二、星期三的用户选择是 7。此值保存在数据库中名为 Days 的列中。
现在如果我有课:
public class Week
{
public bool Monday { get; set; }
public bool Tuesday { get; set; }
public bool Wednesday { get; set; }
public bool Thursday { get; set; }
public bool Friday { get; set; }
public bool Saturday { get; set; }
public bool Sunday { get; set; }
}
如何绑定该值 7 并使相应的属性为真或假。示例:7 等价于星期一、星期二、星期三枚举。如果我将值 7 转换为我的类周,结果将是属性:星期一、星期二、星期三为真,其余为假。
如果我有一个班级周,其中属性:星期一、星期二、星期三为真,并将其转换为枚举 WeekDays,结果将为 7。
我该怎么做?
【问题讨论】:
-
在 db 中只有一个名为 Days 的属性,它是 int 并且包含一个值,比如说 7,它代表距离枚举的 3 天。
-
.NET 4 或更高版本:
myenum.HasFlag(MyEnum.Value) -
term
bit masking可能会引导您找到答案
标签: c# enums enum-flags