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;

しかし、これは日付とエポックタイムでグループ化されるため、同じ日に異なる時間のイベントを独自のグループで取得します。誰かが私を正しい方向に向けることができますか?

よろしくお願いします

4

2 に答える 2

2

linq では保証されないかもしれませんが、グループ化する前にリストの順序を試すことができます。

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

編集MSDNによると、順序はグループ化後に保持されます。

IGrouping オブジェクトは、各 IGrouping の最初のキーを生成した source 内の要素の順序に基づく順序で生成されます。グループ内の要素は、ソースに表示される順序で生成されます。

于 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 に答える