读取一个位域(用于选定的日期)并在 C# 中确定它的值

Reading a bitfield (used for Selected Days) and determining values from it in c#

我的数据库中有一个名为 SelectedDays 的 int 类型的列。我决定采用位方法:

sun=1, mon=2, tue=4, wed=8, thu=16, fri=32, sat=64

如果用户选择星期日、星期一、星期三,则该字段中的值将为 11

在我的 C# 模型中,我试图创建一个只读 属性:

public List<string> Days

这将 return 以字符串格式列出所选日期。

我不知道如何从 11 到 "Sunday"、"Monday"、"Wednesday"

int valueFromDb = 11;
var result = Enum.GetNames(typeof(WeekDays))
                 .Where(x => (valueFromDb & (int)Enum.Parse(typeof(WeekDays), x)) > 0)
                 .ToList();

你可以这样做。 Full example