【问题标题】:Sorting Array Dates in Order C#按 C# 顺序对数组日期进行排序
【发布时间】:2015-03-21 20:48:12
【问题描述】:

我有一些从每个数组输出数据的代码,但我只是想知道我的 twoData 数组是否有办法让用户可以按升序或降序查看日期。目前它的输出如下:

16/03/2015 13/02/2015 2015 年 12 月 2 日 2015 年 3 月 2 日 2015 年 2 月 2 日 2015 年 1 月 30 日 29/01/2014 28/01/2014 27/01/2014 26/01/2013 23/01/2013 22/01/2013

谢谢。

static void Main(string[] args)
    {
        //int ctr = 0; 

        string[] oneData = File.ReadAllLines("One.txt");
        string[] twoData = File.ReadAllLines("Two.txt");

         Console.WriteLine("Which array would you like to view?");
         string input = Console.ReadLine(); 

            Console.Write("\n");

          if (input.ToLower() == "one")
             Console.Write(string.Join("\n", oneData));

          else if(input.ToLower() == "two")
             Console.Write(string.Join("\n", twoData));
    }

【问题讨论】:

    标签: c# arrays sorting


    【解决方案1】:

    要按日期顺序对字符串进行排序,您可以将值解析为日期:

    dateData = dateData
      .OrderBy(d => DateTime.ParseExact(d, "dd'/'MM'/'yyyy", CultureInfo.InvariantCulture))
      .ToArray();
    

    使用OrderByDescending 表示相反的顺序。

    【讨论】:

      【解决方案2】:
       internal class HiringDate :IComparable
      {
          public int day { get; set; }
          public int month { get; set; }
          public int year { get; set; }
      
        
      
      
      
          public HiringDate(int day=1, int month=1, int year=2000)
          {
              this.day = day;
              this.month = month;
              this.year = year;
          }
      
          public override string ToString()
          {
              return $"{day}-{month}-{year}";
          }
      
          public int CompareTo(object obj)
          {
              HiringDate hD = obj as HiringDate;
              if (year.CompareTo(hD.year) == 0)
              {
                  if (month.CompareTo(hD.month) == 0)
                  {
                     return day.CompareTo(hD.day);    
      
                  }
                  else return month.CompareTo(hD.month);
      
      
              }
              else return year.CompareTo(hD.year);
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-23
        • 2016-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多