我正在尝试为Windows 8 Metro风格应用创建分组ListView。 Linq对我来说有点新鲜。我理解基础知识并且熟悉mySQL,但我正在努力学习这个语法。
我有一个包含(其中包括)字符串“Date”和int“epochTime”的类。日期字符串是epochTime的表示形式,但格式为“2012年4月23日” - 忽略事件的小时。
所以我想按日期字符串进行分组,并按时间顺序对组和组内容进行排序。到目前为止我最接近的是这个
var result =
from fixture in items
group fixture by new { fixture.Date, fixture.epochTime } into g
orderby g.Key.epochTime
select g;
但是这个组在日期和epochTime上,所以我得到的是同一天的事件,但是在他们自己的组中有不同的时间。有人能指出我正确的方向吗?
谢谢是提前
答案 0 :(得分:2)
好吧,它可能不是保证由linq但是你可以尝试在分组前对列表进行排序:
from fixture in items.OrderBy(i => i.epochTime)
group fixture by fixture.Date into g
select g;
编辑根据MSDN,订单在分组后会保留:
IGrouping对象按照基于的顺序产生 生成第一个键的源中元素的顺序 每个IGrouping。分组中的元素产生于 它们出现在源中的顺序。
答案 1 :(得分:0)
可以做:
from fixture in items
group fixture by fixture.Date into g
orderby g.First().eepochTime
select g;