C#按日期和时间排序文件

时间:2015-10-25 22:23:28

标签: c# sorting date

我按日期排序文件有问题;这是我的示例代码:

    string[] files = new string {"file1.txt", "file3.txt", "file4.txt"}
    var list = new List<string> {"10/03/2015", "01/01/2015", "20/08/2015"};
    list.Sort((a, b) => a.CompareTo(b));

我想在输出中输入按日期排序的所有文件,而不会丢失每个文件与其时间之间的顺序:

// file3.txt  01/01/2015
// file1.txt  10/03/2015
// file4.txt  20/08/2015

所以我的问题是如何根据文件来排序日期,谢谢:)

2 个答案:

答案 0 :(得分:1)

使用Linq轻松完成。首先,Zip将您的两个集合放在一起并解析日期:

var filesAndDates = files
     .Zip(list,
          (filename,dateString) => new{filename, 
                                       date = DateTime.ParseExact(
                                                dateString,
                                                "dd/MM/yyyy",
                                                CultureInfo.InvariantCulture)});

然后命令他们:

var orderedFilesAndDates = filesAndDates.OrderBy(x => x.date);

我发现自己想知道你是如何结束2&#34;同步&#34;东西清单。您可以创建复合类型并将它们保存在单个列表中。这样管理起来要容易得多......

答案 1 :(得分:0)

首先需要将值解析为DateTime类型,然后进行排序。