我将不同的List组合成一个如下:
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();
Run Code Online (Sandbox Code Playgroud)
因此,在结果中,除了"2013"中的日期之外,所有内容都按降序排序
1/1/2013 12:43:15 PM
所以这些日期是最后一次,而不是一开始.
我不知道为什么会这样.
我猜TwitTime是一个string,在这种情况下你需要一个格式,"yyyy/MM/dd hh:mm:ss"如果你想搜索它而不解析.简单地说,如果最重要的部分(年份)位于右侧,则按字母顺序排序不起作用.
但是:更好的方法是:将其存储在DateTime- 将安全排序.
排序时string,通常会按字典顺序对它们进行比较,这意味着以数字开头的所有字符串1都将在一起:
1
10
2
3
...
Run Code Online (Sandbox Code Playgroud)
当排序日期或时间,你可以使用ISO8601日期,如2013-01-01 12点34分23秒,恰好正确字典顺序排序.许多平台和语言也支持您可以使用的正确的日期比较功能.