Я пытаюсь использовать LINQ для создания сгруппированного списка документов на основе метаданных, которые являются списком в документе.
Вот как выглядит моя структура объекта:
List<Document>
--> List<Metadata>
--> Metadata has a name and a value property.
Я хочу сгруппировать документы на основе тега метаданных, который имеет имя: ID, и сгруппировать их там, где значения свойства ID совпадают.
Я пробовал это следующим образом:
var x = response.Document
.GroupBy(d => d.Metadata.Where(dc => dc.Name == DocProperty.ID)
.Select(dc => dc.Value));
Это приводит к список отдельных документов, но не сгруппированных по идентификатору.
Также подумал о выборе отдельного списка идентификаторов, а затем просмотреть список документов и найти документы, соответствующие идентификатору. Это похоже на большие накладные расходы, потому что для каждого идентификатора в отдельном списке я должен каждый раз заходить в список метаданных и находить документы, а также выполнять дополнительные проверки для нескольких найденных элементов, получать нужное мне свойство и т. Д.
Кто-нибудь знает, как заставить эту штуку работать?