在c中按特定日期对数组天数进行排序#我有三天(星期日、星期二、星期五(我想用星期一对我的数组进行排序,我的数组变成{星期二,星期五,星期日}
如果我理解得对,您希望将array
从Monday
排序为Sunday
顺序:
Mon < Tue < ... < Sat < Sun
你可以在DayOfWeek属性的帮助下完成,例如
DateTime[] array = new DateTime[] {
new DateTime(2022, 2, 6), // Sun
new DateTime(2022, 2, 8), // Tue
new DateTime(2022, 2, 11), // Fri
};
Array.Sort(array, (left, right) =>
(((int)(left.DayOfWeek) + 6) % 7).CompareTo(((int)(right.DayOfWeek) + 6) % 7));
让我们看看:
Console.Write(string.Join(Environment.NewLine, array
.Select(d => $"{d:dd MMMM yyyy (ddd)}")));
结果:
08 February 2022 (Tue)
11 February 2022 (Fri)
06 February 2022 (Sun)