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是 a string,在这种情况下,您需要一种格式,就像"yyyy/MM/dd hh:mm:ss"您想在不解析的情况下搜索它一样。简单地说,如果最重要的部分(年份)位于右侧,则按字母排序不起作用。

但是:更好的方法是:将其存储在DateTime- 将安全排序。

于 2013-01-03T08:00:42.360 回答
5

在对 s 进行排序时string,它们通常按字典顺序进行比较,这意味着所有以 number 开头的字符串1都将放在一起:

1
10
2
3
...

在对日期或时间进行排序时,您可以使用ISO8601日期,例如 2013-01-01 12:34:23,它恰好按字典顺序正确排序。许多平台和语言还支持您可以使用的正确日期比较功能。

于 2013-01-03T08:03:04.467 回答