【问题标题】:C# Sort array element in list by dateC#按日期对列表中的数组元素进行排序
【发布时间】:2016-03-09 15:48:38
【问题描述】:

我有一个清单

List<string[]> myList = new List<string[]>();

包含一个我想在列表中按日期排序的数组。

string[] myArray = new string[3];

日期保存在数组中的位置 0。

myArray[0] = (Convert.ToDateTime(Console.ReadLine())).ToString("yyyy/MM/dd");

当我的打印代码看起来像这样时,这怎么可能?

foreach (string[] element in myList) {
   Console.WriteLine("{0} {1} {2}", element[0], element[1], element[2]);
}

【问题讨论】:

  • 您的问题对我来说似乎不清楚。您的myList 包含您的myArray?能不能说的具体点?
  • “日期保存在 0 位”对我来说听起来你需要一个 MyObject 列表
  • 你自己没有表现出任何努力。这个问题和你的最后一个问题闻起来像家庭作业。 SO 不是做你的功课服务。

标签: c# arrays list sorting date


【解决方案1】:

您可以使用List.SortDateTime.ParseExact

myList.Sort((arr1, arr2) => DateTime.ParseExact(arr1[0], "yyyy'/'MM'/'dd", null)
                 .CompareTo(DateTime.ParseExact(arr2[0], "yyyy'/'MM'/'dd", null)));

这假定所有的格式都有效,否则你会得到一个异常。

【讨论】:

    【解决方案2】:

    您应该构造一个表示您的数据的对象,然后让您的列表成为此类的列表,而不是从任意字符串数组中访问数据。

    public class MyObject
    {
        public DateTime Date {get;set;}
        public string Param2  {get;set;}
        public string Param3  {get;set;}
    }
    List<MyObject> myList = new List<MyObject>();
    

    在这种情况下,排序变得微不足道

    foreach (var element in myList.OrderBy(x => x.Date))
    

    【讨论】:

      猜你喜欢
      • 2014-10-19
      • 1970-01-01
      • 2023-02-15
      • 1970-01-01
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多