Intento utilizar LINQ para crear una lista agrupada de documentos basados en metadatos que es una lista en el documento.LINQ: agrupación basada en la propiedad en la sublista
A continuación se muestra cómo la estructura de mi objeto se ve:
List<Document>
--> List<Metadata>
--> Metadata has a name and a value property.
que desea agrupar los documentos en función de una etiqueta de metadatos que tiene un nombre: Identificación y agruparlos en donde los valores de la propiedad ID son los mismos.
me trataron así:
var x = response.Document
.GroupBy(d => d.Metadata.Where(dc => dc.Name == DocProperty.ID)
.Select(dc => dc.Value));
Esto se traduce en una lista de documentos individuales, pero no agrupados en la ID.
También se pensó en seleccionar una lista distinta de ID y luego recorrer la lista de documentos y buscar documentos que coincidan con la ID. Parece una gran cantidad de sobrecarga, porque por cada ID en la lista distinta tengo que ir cada vez a la lista de metadatos y encontrar los documentos y tener que realizar comprobaciones adicionales para encontrar varios elementos, obtener la propiedad que necesito, etc.
¿Alguien tiene una buena idea sobre cómo hacer que esto funcione?
que funciona! Gracias – ChristiaanV
¿Hay alguna manera fácil de ocultar esto a la notación fluida? Lo intenté, pero no estoy seguro de dónde colocar el GroupBy, por lo que puede acceder a la propiedad meta.value. Esto es lo que intentado: var y = response.Document .GroupBy (d => d.DocumentCharacteristic .Where (dc => dc.Name == DocProperty.InvoiceNumber) .Seleccionar (dc => dc.Value)); – ChristiaanV
Tenga en cuenta que meta.Value debe ser '.Key' en cada agrupación ... –