Je souhaite GroupBy plusieurs objets dans une liste d'enregistrements et pas simplement plusieurs valeurs.Utilisation de LINQ GroupBy pour regrouper par objets de référence au lieu d'objets valeur
J'ai du mal à faire fonctionner le regroupement avec des objets de type référence. J'ai une collection d'objets qui contiennent Room, Type et DateTime. Room, Type et DateTime ont tous des propriétés qui leur sont associées. J'ai déjà ajouté l'interface IEquateable à la pièce et le type pensant que cela suffirait à avec le groupe.
var groups = collection
.Where(g => g.Stage == InventoryStage.StageA)
.GroupBy(g => new {g.BirthDate, g.Room, g.Type});
Pour que ce code fonctionne, je dois appeler notre propriété spécifique sur ces objets pour le grouper. Le problème avec cela est que j'ai besoin des objets complexes stockés dans la « clé » du groupement afin que je puisse accéder à ces groupes d'informations spécifiques
var groups = collection
.Where(g => g.Stage == InventoryStage.StageA)
.GroupBy(g => new {
Birthday = g.BirthDate,
RoomName = g.Room.Name,
TypeName = g.Type.Name
});
Je finissent par avoir à faire^pour obtenir le regroupement au travail, Cependant, les groupes perdent l'objet compliqué que je voulais.
Vos 'Room' et' Type' devraient remplacer 'Equals' +' GetHashCode' ou/et implémenter 'IEquatable'. –