如何在c#中按特定日期对数组中的一周中的天数进行排序



在c中按特定日期对数组天数进行排序#我有三天(星期日、星期二、星期五(我想用星期一对我的数组进行排序,我的数组变成{星期二,星期五,星期日}

如果我理解得对,您希望将arrayMonday排序为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)

最新更新