1

私は以下のように異なるリストを1つのリストに結合しています:

List<Tweet> tweets = new List<Tweet>();

foreach (string TID in TypeIDList)
{
    List<Tweet> lt = new List<Tweet>();
    ......
    tweets = tweets.Concat(lt).OrderByDescending(x => x.TwitTime).ToList();
}

return tweets.OrderByDescending(x => x.TwitTime).ToList();

したがって、結果では、「2013」の日付を除いて、すべてが降順で並べ替えられます。

1/1/2013 12:43:15 PM

したがって、これらの日付は最初ではなく最後に来ます。

なぜそれが起こっているのか分かりません。

4

2 に答える 2

5

だと思いますTwitTimeが、その場合、解析せずに検索したい場合stringのような形式が必要になります。"yyyy/MM/dd hh:mm:ss"簡単に言えば、最も重要な部分 (年) が右側にある場合、アルファベット順の並べ替えは機能しません。

ただし、より良いアプローチは、DateTime安全にソートされる - に保存することです。

于 2013-01-03T08:00:42.360 に答える
5

s をソートするときstring、それらは通常、辞書式に比較されます。つまり、number で始まるすべての文字列1が一緒になります。

1
10
2
3
...

日付または時刻をソートする場合、 2013-01-01 12:34:23 などのISO8601日付を使用すると、たまたま辞書順に正しくソートされます。多くのプラットフォームと言語は、使用できる正しい日付比較機能もサポートしています。

于 2013-01-03T08:03:04.467 に答える