以INT形式查询DayOfWeek,如何将其分解为天数
本文关键字:分解 INT 查询 DayOfWeek | 更新日期: 2023-09-27 18:16:47
好了,我有这个enum
public enum DaysOfWeek
{
[EnumMember]
Monday = 1,
[EnumMember]
Tuesday = 2,
[EnumMember]
Wednesday = 4,
[EnumMember]
Thursday = 8,
[EnumMember]
Friday = 16,
[EnumMember]
Saturday = 32,
[EnumMember]
Sunday = 64
}
该enum以INT形式存储在DB中。它们是通过复选框插入的,因此,例如,如果我选中星期一和星期二,它们将根据它们的总价值存储为3(1+2)。
现在我想查询回此数据,并且只有3作为输出,我如何将其转换回日,星期一和星期二。
谢谢。
为了能够正确设置,您需要用FlagsAttribute
装饰enum。
[Flags]
public enum DaysOfWeek
{
[EnumMember]
Monday = 1,
[EnumMember]
Tuesday = 2,
[EnumMember]
Wednesday = 4,
[EnumMember]
Thursday = 8,
[EnumMember]
Friday = 16,
[EnumMember]
Saturday = 32,
[EnumMember]
Sunday = 64
}
则设置3表示同时选择Monday
和Tuesday
。
这将输出Monday, Tuesday
:
Console.WriteLine(((DaysOfWeek)3).ToString());