排序日期和时间字符串

时间:2012-10-31 12:03:29

标签: c# .net datetime

我将以下字符串排序(字符串格式:121030-1833 - > YYDDMM-HHMM)

字符串示例:

121030-1833
120823-2034
120807-2014
120627-2316
120525-1136
111226-1844

我想从最新格式到旧格式对它们进行排序。

哪种排序方法最适合在这里使用?

更新了问题陈述

dictionary [String,string]“dictLocation”值与我,想要根据其键(Key-YYMMDD-HHMM,最新到最旧)对字典进行排序

{[110901-1226, sandyslocation.110901-1226]}
{[120823-2034, andyslocatio.120823-2034]}
{[110915-1720, mylocation.110915-1720]}
{[121030-1833, mylocation.121030-1833]}

我正在尝试此var latestToOldest = dictLocation.OrderBy(key => key.Key)

它没有给我正确的结果,我有什么遗漏吗?

2 个答案:

答案 0 :(得分:4)

碰巧,只需按降序排序它们就可以了:

var latestToOldest = original.OrderByDescending(x => x);

假设您想假设所有值都在同一个世纪内。 (如果你可以改变格式,我建议使用4位数的年份来清晰。)

但是,我建议尽早将值解析为DateTime 。只要有可能,请将数据保持为最“自然”的形式。从根本上说,这些是日期和时间,而不是字符串 - 所以尽早将它们转换为该格式,并尽可能保持它们的格式。

答案 1 :(得分:1)

var sortedDateStrings = dateStrings.Sort().Reverse();
// or
var sortedDateStrings = dateStrings.OrderByDescending(x => x);