從客戶端我得到一個列表,其中每個int值是Enum DayOfWeek的枚舉int值。將多個列表枚舉值寫入另一個枚舉
該列表僅包含那些在時間計劃器中可見的int值(天)。
取int值列表例如0,1,2(星期日,星期一,星期二)你會如何將這些值寫入DayOfWeek枚舉中,並以一般方式工作7天或全天?
只知道星期六的索引是6,而我的DayOfWeek枚舉的值是32。
[Flags]
public enum DayOfWeek
{
Sunday = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 4,
Thursday = 8,
Friday = 16,
Saturday = 32,
NotSet = 64,
}
UPDATE
這是MarcinJuraszek工作液代碼只是改變了我的需求:
var visibleWeekDays = new List<int>();
for (int i = 0; i <= 6; i++)
{
visibleWeekDays.Add(i);
}
int allBitValues = visibleWeekDays.Select(i => (int)Math.Pow(2, ((i + 6) % 7))).Aggregate((e, i) => e | i);
AllVisibleDays = (VisibleDayOfWeek) allBitValues;
[Flags]
public enum VisibleDayOfWeek
{
None = 0,
Mon = 1,
Tue = 2,
Wed = 4,
Thu = 8,
Fri = 16,
Sat = 32,
Sun = 64
}
public VisibleDayOfWeek AllVisibleDays { get; set; }
上面的代碼一週中的每一天寫入VisibleDayOfWeek枚舉可能現在可以輕鬆保存在數據庫字段中。
根據微軟MSDN的標誌枚舉現在已經設置爲0再次其無值,其餘值是電源2.
所以你從內置的星期幾,你想將它們轉換成你一週中的某天枚舉獲取值?這是你寫的意思嗎? – 2013-03-22 22:28:44
傢伙,我已經更新了我的問題,改變了枚舉值,以更好地適應那裏週日有int值0 – Elisabeth 2013-03-22 22:37:39
我想你想扭轉這種變化枚舉原來DAYOFWEEK枚舉值;如果只是這樣,它默認爲None,而不是Sunday。只有在未初始化或使用Default方法設置時。 – 2013-03-22 22:40:43