Assuming you have a string formatted as a comma-separated list of days:
"Monday, Tuesday, Thursday"
You can Split
it into a string array and parse each element:
var days = weekString.Split(',', StringSplitOptions.RemoveEmptyEntries);
DayOfWeekMask? result = null;
foreach (var day in days) {
var enumDayName = "ol" + day;
if (Enum.IsDefined(typeof(DayOfWeekMask), enumDayName)) {
result |= (DayOfWeekMask)Enum.Parse(typeof(DayOfWeekMask), enumDayName, true);
}
}
Note that you need to define values for each element of DayOfWeekMask
to make the ORing work properly!
If your input is a DayOfTheWeekCollection
, then you can just directly convert the Enum values:
DayOfTheWeekCollection days; // get this from somewhere
foreach (var day in days) {
switch (day) {
case DayOfTheWeek.Monday:
result |= DayOfWeekMask.Monday;
break;
case DayOfTheWeek.Tuesday:
// etc.
}
}