C# Linq订购的美国日期
我想显示带有日期的项的降序列表,但我似乎无法让orderby子句进行双重排序。对于一个普通的美国人来说,你要先按年、月、日来排序。请参见下面的代码 2012年10月21日=2012年10月21日 2012年12月3日=2012年3月12日 2013年1月15日=2013年1月15日 无论我如何排序,我总是得到我在下面看到的内容,我尝试过更改字符串格式化程序,但这似乎不起作用。我在子句中添加了一些convert/parse方法,但没有任何帮助。我正在寻找一个高性能的解决方案,因为这是一个具有很长列表的移动应用程序。最快的方法是什么?创建自定义比较器?有没有办法执行第二个orderby子句 我经常看到的是,为什么2013年不是2012年之后 2013年1月15日 2013年10月21日 2012年3月12日C# Linq订购的美国日期,c#,linq,C#,Linq,我想显示带有日期的项的降序列表,但我似乎无法让orderby子句进行双重排序。对于一个普通的美国人来说,你要先按年、月、日来排序。请参见下面的代码 2012年10月21日=2012年10月21日 2012年12月3日=2012年3月12日 2013年1月15日=2013年1月15日 无论我如何排序,我总是得到我在下面看到的内容,我尝试过更改字符串格式化程序,但这似乎不起作用。我在子句中添加了一些convert/parse方法,但没有任何帮助。我正在寻找一个高性能的解决方案,因为这是一个具有很长列
IEnumerable sortedItems=
来自_localLists.CustomList中的feedItem
按feedItem.EventDate对feedItem进行分组
变成c
订货人
(DateTime.ParseExact(c.Key,“MM-dd-yyyy”,
CultureInfo.InvariantCulture)
选择新组(c键,c);
我返回并将字符串更改为DateTime,这显然是一个加号。问题只是显示而已。我使用telerik控件对列表进行分组、筛选和排序,linq并没有驱动我看到的内容。解决方案是UI上的设置不正确。为什么首先将日期存储为字符串?第二个顺序是:然后是by
。在查询语法中,在下一个要排序的字段中输入逗号,例如。。。orderby a,b
。在格式说明符中有破折号(-),在示例数据中有斜杠(/)。问题是ParseExact会因为格式不匹配而失败吗?请忽略示例中的my/,因为我只是想表达年份不符合顺序的问题。我试过了,但没有精确解析,结果也一样。
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);