2009-03-06 23 views
0

Ben bir grup yapmak ve çocuk listeleri olsun ... sorgu sırasında benLINQ: çalışma zamanı sırasında alt listelere erişme

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??? 
       }; 

ile yeni bir nesne oluşturmak istiyorum during created created created created created created created created created created created created created created created created son first.Timestamp

özel bir değere sahiptir. Yeni seçim oluştururken son g'ye erişebilmek mümkündür {} Son g

dan bir gerçek değeri kontrol etmek istiyorum sonuç3 gibi bir şey [result.count - 1] .timestamp ??? yeni parça seç ...

cevap

1

Doğru bir şekilde anlayamıyorum, ama istediğin bu mu?

result3.Last().Timestamp; 


comment sonra: Ben şimdi anlıyorum düşünüyorum. Geçen grubun damgası depolamak ve daha karmaşık bir temsilci değerini ayarlamak için geçici değişken oluşturmak gerekir:

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; 
       }); 

tam bağlamı bilmiyorum ama ("ToList eklemek isteyebilirsiniz) "tembel getirme geçersiz kılmak için.

+0

bu işe yaramıyor ... kod iyi görünüyor ... ama hata ayıklamada ... sonuç3, temp sonucundan yeni değişkeni yok Saye, Anahtar .... vb ... –

+0

hata sonuç.Timestamp -> g olmalı ... –

İlgili konular