4
我想显示日期的项目降序列表,但我似乎无法得到orderby子句做双重排序。对于一个普通的美国人来说,你想按照年份先排序,然后再按月排列几天。请参阅下面的代码。OrderBy Linq与美国日期
2012年10月21日= 2012年10月21日
2012年12月3日= 12/03/2012
Januaray 15日,2013 = 2013年1月15日
无论我如何分类,我总是得到我在下面看到的内容,我尝试过更改字符串格式化程序,但这似乎并不正确。我为该子句添加了一些转换/解析方法,但这并没有帮助。我正在寻找高性能解决方案,因为这是一款使用非常长名单的移动应用程序。什么是最快的方法来做到这一点?创建一个自定义比较器?有没有办法做第二个orderby子句?
我最终看到的是,2012年之后为什么不是2013年?
2013年1月15日
2013年10月21日
12/03/2012
IEnumerable<Group<FeedItem>> sortedItems =
from feedItem in _localLists.CustomList
group feedItem by feedItem.EventDate
into c
orderby
(DateTime.ParseExact(c.Key, "MM-dd-yyyy",
CultureInfo.InvariantCulture)) ascending
select new Group<FeedItem>(c.Key, c);
为什么日期首先存储为字符串? –
2nd order by:'ThenBy'是方法。在查询语法中,输入一个逗号,然后输入下一个字段进行排序。 '... orderby a,b'。 –
在ParseExact的格式说明符中,您有破折号( - ),而您的示例数据中有斜杠(/)。问题可能是ParseExact失败,因为格式不匹配? – craftworkgames