我正在查看https://msdn.microsoft.com/en-us/library/windows/desktop/aa384024%28v=vs.85%29.aspx
星期日= 1
星期一= 2
星期二= 4
星期三= 8
星期四= 16
星期五= 32
星期六= 64
此属性包含“计划任务”中所选DayOfWeek的聚合值。例如,值66是星期一或星期日。
我想将此值转换为List(of DayOfWeek)。
像这样转换值的最佳方法是什么?
最佳答案
var weekDays = (int)daysOfWeek;
var weekDayEnumerable = Enumerable
.Range(0, 7)
.Where(i => { var isMatch = (weekDays & 1) == 1; weekDays >>= 1; return isMatch; })
.Select(i => (DayOfWeek)i)
.ToList();
好的,也许为避免循环太过努力了,但是如果您愿意,也可以转换为类似的for循环。
更新:
不做任何改动的版本:
var weekDays = (int)daysOfWeek;
var weekDayEnumerable = Enumerable
.Range(0, 7)
.Where(i => (weekDays & (1 << i)) > 0)
.Select(i => (DayOfWeek)i)
.ToList();
关于c# - 将WeeklyTrigger.DaysOfWeek转换为(DayOfWeek)的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29684103/