2009-03-06 5 views
0

je fais un groupe par et obtenir des listes d'enfants ... lors de la requête que je crée une nouvelle obj avecLINQ: avoir accès à des listes d'enfants lors de l'exécution

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

je veux avoir accès lors de l'exécution dans la sélection nouvelle sur les valeurs du dernier créé obj vérifier peut-être si la dernière first.Timestamp a une valeur spécifique

est-il possible d'avoir accès à la dernière g lors de la création de la nouvelle sélection {} je veux vérifier une valeur réelle cep un du dernier g

je pensais quelque chose comme result3 [result.count - 1] .timestamp ??? dans la nouvelle partie de sélection ...

Répondre

1

Je ne devrais pas comprendre correctement, mais est ce que vous voulez?

result3.Last().Timestamp; 

Après commentaire: Je pense que je comprends maintenant. Vous devez créer une variable temporaire pour stocker l'horodatage du dernier groupe et sa valeur dans un délégué plus complexe:

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

Je ne sais pas le contexte exact, mais vous pouvez ajouter « ToList () "pour remplacer la récupération paresseuse.

+0

cela ne fonctionne pas ... le code semble bon ... mais dans le débogage ... le résultat3 n'a pas la nouvelle variable du résultat temporaire Counte, Key .... etc ... –

+0

la faute est result.Timestamp -> doit être g ... –

Questions connexes