2011-03-18 4 views
21

Essayez de trouver une requête linq et je me demandais si vous pouviez aider. J'ai une liste d'objets foo et chaque objet foo a une liste de bar. La barre a une date active et une valeur numérique. par exempleGroupe Linq par requête

foo 
    bar -> 01/02/05, 10000 
    bar -> 04/06/10, 30023 
foo 
    bar -> 30/01/02, 23494 

Je veux écrire une requête LINQ qui me renvoie une liste distincte de dates et le total résumé pour cette date

Il se peut que le vendredi, mais je dessine une blanc.

Merci à l'avance

Répondre

45

On dirait que vous voulez:

var query = from foo in list 
      from bar in foo.Bars 
      group bar.Value by bar.Date into dates 
      select new { Date = dates.Key, Sum = dates.Sum() }; 
+0

Eh oui, thats le billet ... pense que je dois rentrer à la maison –

+0

@brokem, je suis après le total cumulé, pas le nombre de dates –

+0

@mjmcloug: Oui, je me suis rendu compte qu'une fois que j'avais déjà écrit le commentaire - enlevé juste après. – BrokenGlass

6

Vérifiez aussi bien ...

var q = from e in Entries 
      select new 
      { 
       EntryID = e.EntryID, 
       EntryName = e.EntryName, 
       EntryDescription = e.EntryDescription, 
       VoterID = voterID, 
       Score = (int?)(from v in e.Votes 
           where v.VoterID == voterID 
           select v.Score).FirstOrDefault()