0

以下の文字列を並べ替えます(文字列形式: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]}

私はこの変数を試していますlatestToOldest=dictLocation.OrderBy(key => key.Key)

それは私に適切な結果を与えていません、私が欠けているものはありますか?

4

2 に答える 2

4

たまたま、降順で並べ替えるだけで機能します。

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

これは、すべての値が同じ世紀内にあると想定したいという前提です。(形式を変更できる場合は、わかりやすくするために 4 桁の年を使用することをお勧めします。)

ただし、できるだけ早くDateTime値を値に解析することをお勧めします。可能な限り、データを最も「自然な」形式に保ちます。基本的に、これらは日付と時刻であり、文字列ではありません。そのため、早い段階でその形式に変換し、可能な限りその形式を維持してください。

于 2012-10-31T12:06:29.623 に答える
1
var sortedDateStrings = dateStrings.Sort().Reverse();
// or
var sortedDateStrings = dateStrings.OrderByDescending(x => x);
于 2012-10-31T12:07:42.260 に答える