4

我想显示带有日期的项目的降序列表,但我似乎无法让 orderby 子句进行双重排序。对于一个普通的美国人,你想先按年排序,然后按月排序,然后按天排序。请参阅下面的代码。

2012 年 10 月 21 日 = 2012 年 10 月 21 日

2012 年 12 月 3 日 = 12/03/2012

2013 年 1 月 15 日 = 01/15/2013

无论我如何排序,我总是得到我在下面看到的内容,我尝试更改字符串格式化程序,但这似乎不起作用。我在子句中添加了一些转换/解析方法,但这没有帮助。我正在寻找一个高性能的解决方案,因为这是一个处理很长列表的移动应用程序。最快的方法是什么?创建自定义比较器?有没有办法做第二个 orderby 子句?

我总是最终看到的,为什么 2012 年之后不是 2013 年?

2013 年 1 月 15 日

2013 年 10 月 21 日

2012 年 12 月 3 日

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);
4

1 回答 1

0

我回去将字符串更改为 DateTime,这显然是一个加号。问题只是显示。我正在使用 Telerik 控件对列表进行分组、过滤和排序,但 linq 并没有驱动我所看到的内容。解决方案是 UI 上的设置不正确。

于 2012-12-19T04:32:22.837 回答