J'ai une table de base de données qui représente des événements. La table dispose de 2 champs principaux EventDate et Eventtitle.
J'essaie de regrouper les événements par année pour être affichés à l'utilisateur. J'essaie d'utiliser une requête LINQ pour tirer les années distinctes qui ont des événements et pour chaque année, il devrait y avoir une liste d'événements de cette année. Donc, chaque enregistrement de la liste aurait une année et une liste d'événements p>
Je suppose que cela peut être fait avec une requête LINQ, mais ma connaissance LINQ est basique.
Jusqu'à présent, je n'ai obtenu que les années distinctes dans une liste avec cette requête: p> Comment puis-je ajouter une liste d'événements à l'enregistrement de chaque année? P> p>
3 Réponses :
var yearsList = from e in Events
group e by e.EventDate.Year into g
select new { Year = g.Key, Events = g };
That will get you a list of objects with a "Year" property and an "Events" property (all the events for that year).Have a look at this handy reference: 101 Linq Samples.
Vous recherchez vraiment un groupe commandé.
var yearsList = from e in Events
group e by e.EventDate.Year into g
orderby g.Key
select g;
foreach(var yearGroup in yearsList)
{
int year = yearGroup.Key;
foreach(Event e in yearGroup)
{
// do something with the events
}
}
En supposant que vous avez la classe d'événement suivante ce qui précède devrait vous donner des événements groupés par année p> p>
Je devais supprimer l'image de votre message car les imageshack les ont supprimées et les ont remplacées par la publicité. Voir meta.stackexchange.com/q/263771/215468 pour plus d'informations. Si possible, ce serait formidable pour que vous puissiez les reprogrammer. Merci!