我像这样遍历DayOfWeek枚举:
foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek)))
{
// Add stuff to a list
}
我的问题是我希望枚举在星期一而不是星期日开始。
我试着做:
CultureInfo ci = Thread.CurrentThread.CurrentCulture;
ci.DateTimeFormat.FirstDayOfWeek = DayOfWeek.Monday;
但是foreach循环仍然从星期日开始。
我怎样才能做到这一点 ?
我的最后一个想法是将结果列表重新排序为我想要的日期
但这意味着更多的迭代。
谢谢 !
最佳答案
这是不可能的,纯粹是因为设置区域性并不会改变DayOfWeek
enum
定义为这样的事实:
public enum DayOfWeek {
Sunday = 0,
Monday = 1,
Tuesday = 2,
Wednesday = 3,
Thursday = 4,
Friday = 5,
Saturday = 6,
}
但是,您可以跳过第一个条目,以后再添加它。
foreach (DayOfWeek day in Enum.GetValues(typeof(DayOfWeek))
.OfType<DayOfWeek>()
.ToList()
.Skip(1)) {
list.Add(day.ToString());
}
list.Add(DayOfWeek.Sunday.ToString());
关于c# - 对于通过DayOfWeek枚举从星期一开始的每个循环?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17366379/