我不知道如何按日期对列表进行排序。我只知道如何使用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);
我要做的就是使用我要保存的日期对列表进行排序。
答案 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"))));