0

我正在尝试为 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;

但是这个分组在 date 和 epochTime 上,所以我得到了在同一天但在他们自己的组中不同时间的事件。谁能指出我正确的方向?

谢谢是提前

4

2 回答 2

2

好吧,linq可能无法保证,但您可以尝试在分组之前对列表进行排序:

from fixture in items.OrderBy(i => i.epochTime)
            group fixture by fixture.Date into g
            select g;

编辑根据MSDN,分组后保留顺序:

IGrouping 对象的生成顺序基于 source 中生成每个 IGrouping 的第一个键的元素的顺序。分组中的元素按照它们在源中出现的顺序产生。

于 2012-10-11T20:12:16.357 回答
0

可以做:

from fixture in items 
group fixture by fixture.Date into g 
orderby g.First().eepochTime
select g; 
于 2012-10-11T20:13:36.240 回答