如何按DateTime对List <string []>进行排序?

时间:2019-05-06 01:08:24

标签: c# list sorting datetime format

我不知道如何按日期对列表进行排序。我只知道如何使用DateTime格式或int进行排序。也许是因为我是新来的,所以我做错了什么。

我需要用DateTime做第二个列表/数组吗?我已经尝试过,但是我不知道如何连接它。而且,当我尝试进行冒泡排序时,由于列表格式

,它无法正常工作
List<string[]> msgBoard = new List<string[]>();
string[] info = new string[3];   
Console.WriteLine("\tTitle: ");                        
string title = Console.ReadLine();                       
info[0] = title;                        
Console.WriteLine("\tMessage: ");                        
string msg = Console.ReadLine();                        
info[1] = msg;
string date = DateTime.Now.ToString("yyyy/MM/dd"); 
info[2] = date;                        
msgBoard.Add(info);

我要做的就是使用我要保存的日期对列表进行排序。

1 个答案:

答案 0 :(得分:2)

您确实应该将string[]转换为对象。考虑以下代码:

private class Entry {
 public string Message { get; set;}
 public string Title { get; set;}
 public DateTime Date { get; set;}
}

...
//your code converted to use this `Entry` object rather than a `string[]`

List<Entry> msgBoard = new List<Entry>();

Entry info = new Entry();    

Console.WriteLine("\tTitle: ");    
string title = Console.ReadLine();    
info.Title = title;    

Console.WriteLine("\tMessage: ");    
string msg = Console.ReadLine();    
info.Message = msg;    

string date = DateTime.Now;    
info.Date = date;    

loggBok.Add(logg);
loggBok.Sort(new Comparison<Entry>((Entry x, Entry y) => x.Date.CompareTo(y.Date)));

如果必须对列表进行排序,并且必须是字符串数组,则可以这样做(假定每个元素都[2]以yyyy / MM / dd格式为日期加上字符串):

loggBox.Sort(new Comparison<string[]>((string[] x, string[] y)=>
   DateTime.ParseExact(x[2], "yyyy/MM/dd").CompareTo(
   DateTime.ParseExact(y[2], "yyyy/MM/dd"))));