Я хочу GroupBy несколько объектов в списке записей, а не просто нескольких значений.Использование LINQ GroupBy для группировки по ссылочным объектам вместо объектов значений
У меня возникли проблемы с группировкой для работы с объектами ссылочного типа. У меня есть коллекция объектов, которые содержат Room, Type и DateTime. В комнате, типе и DateTime есть свойства, связанные с ними. Я уже добавил интерфейс IEquateable в комнату и тип мышления, которого было бы достаточно, чтобы с группой.
var groups = collection
.Where(g => g.Stage == InventoryStage.StageA)
.GroupBy(g => new {g.BirthDate, g.Room, g.Type});
Для того чтобы этот код работал, я должен называть наше конкретное свойство на этих объектах группой. Проблема в том, что мне нужны сложные объекты, хранящиеся в «Key» в группировке, так что я могу получить доступ, что группы конкретной информации
var groups = collection
.Where(g => g.Stage == InventoryStage.StageA)
.GroupBy(g => new {
Birthday = g.BirthDate,
RoomName = g.Room.Name,
TypeName = g.Type.Name
});
Я в конечном итоге того, чтобы сделать ^, чтобы получить группировку на работу, однако группы теряют сложный объект, который я хотел.
Ваши 'Room' и' Type' должны переопределять 'Equals' +' GetHashCode' или/и реализовывать 'IEquatable'. –