2009-03-06 2 views
0

私はグループを作成し、子のリストを取得する...クエリ中に 私はLINQ:実行時に子リストにアクセスする

で新しいobjを作成する
var result3 = from tick in listTicks 
       group tick by bla bla into g 
       select new 
       { 
        Count = g.Count(), 
        Key = g.Key, 
        Items = g, 
        Timestamp = g.First().timestamp, 
        LastTimestamp = g[-1].First().timestamp result3 isn't still declared??? 
       }; 

私は実行時に選択した新しいobj 最後のfirst.Timestampは特定の値を持っています

select new {}を作成中に最後のgにアクセスすることは可能ですか? 私は最後のgから実際の値をチェックしたい

result3 [result.count - 1] .timestamp ???のようなもの新しい部分を選択...

答えて

1

私は正しく理解する必要はありませんが、これは何ですか?コメントの後

result3.Last().Timestamp; 

:私は今理解だと思います。 あなたが最後のグループのタイムスタンプを保存し、より複雑なデリゲートにその値を設定するために一時変数を作成する必要があります。

int lastTimestamp = 0; // Put the correct type and default value 

var result3 = (from tick in listTicks 
       group tick by bla bla into g 
       select g) 
       .Select 
       (g => 
       { 
        // Create your object with the last timestamp 
        var result = new 
        { 
         Count = g.Count(), 
         Key = g.Key, 
         Items = g, 
         Timestamp = g.First().timestamp, 
         LastTimestamp = lastTimestamp 
        }; 
        // Set last timestamp for next iteration 
        lastTimestamp = result.Timestamp; 
        // Return your object 
        return result; 
       }); 

正確な状況を知ってはいけない、しかし、あなたが(」ToListメソッドを追加したい場合があります) "を使用して、遅延フェッチをオーバーライドします。

+0

これはうまくいきません...コードは良く見えますが、デバッグでは...結果3は一時的な結果の新しい変数を持っていますCounte、Key ....など... –

+0

結果です。タイムスタンプ - >はgでなければなりません... –

関連する問題