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

发布于 2025-01-10 11:34:52 字数 84 浏览 0 评论 0原文

在 C# 中按特定日期对数组日期进行排序 我有 3 天时间{周日、周二、周五} 我想用星期一对我的数组进行排序,我的数组变成 { 星期二,星期五,星期日}

sort array days by specific day in c#
I have 3 days {sunday, tuesday, friday}
I want to sort my array with monday and my array become { tuesday, friday , sunday}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦里南柯 2025-01-17 11:34:52

如果我理解正确的话,您想要将 arrayMondaySunday 顺序排序:

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)

If I understand you right, you want to sort array from Monday to Sunday order:

Mon < Tue < ... < Sat < Sun

You can do it with a help of DayOfWeek property, e.g.

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));

Let's have a look:

Console.Write(string.Join(Environment.NewLine, array
  .Select(d => 
quot;{d:dd MMMM yyyy (ddd)}")));

Outcome:

08 February 2022 (Tue)
11 February 2022 (Fri)
06 February 2022 (Sun)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文