LINQ: agrupamento baseado na propriedade na sublist
Estou tentando usar o LINQ para criar uma lista agrupada de documentos com base em metadados, que é uma lista no document
Abaixo é a aparência da minha estrutura de objeto:
List<Document>
--> List<Metadata>
--> Metadata has a name and a value property.
Desejo agrupar os documentos com base em uma tag de metadados com um nome: ID e agrupá-los onde os valores da propriedade ID forem os mesmo
Tentei assim:
var x = response.Document
.GroupBy(d => d.Metadata.Where(dc => dc.Name == DocProperty.ID)
.Select(dc => dc.Value));
Isso resulta em uma lista de documentos únicos, mas não agrupados em I
Também pensei em selecionar uma lista distinta de IDs e, em seguida, percorrer a lista de documentos e encontrar documentos que correspondam à ID. Essa parece ser uma sobrecarga, porque para cada ID na lista distinta eu tenho que ir sempre à lista de metadados, encontrar os documentos e fazer verificações extras de vários itens encontrados, obter a propriedade de que preciso etc.
Alguém tem uma boa idéia de como fazer isso funcionar?