Tengo dos variables de tipo ILookup. Quería usar Union o Concat para combinar sus valores y asignar el resultado a una tercera variable del mismo tipo. Tanto Union como Concat devuelven IGrouping. ¡Debe ser muy sencillo convertir IGrouping en ILookup pero simplemente no puedo hacerlo! :-(IGrouping expone solo la clave, así que estoy luchando con el segundo parámetro de la búsqueda .... Cualquier ayuda será muy, muy apreciada.LINQ Convertir de IGrouping a la búsqueda
Respuesta
Creo que primero tendrá que aplanar las secuencias, para usar ToLookup
:
var lookup = first.Concat(second)
.SelectMany(group => group,
(group, item) => new { Key = group.Key,
Item = item })
.ToLookup(x => x.Key, x => x.Item);
que utiliza la forma de SelectMany
que toma dos delegados: uno para convertir un elemento de la secuencia original a una colección, y otro para tomar un elemento de la colección original (es decir, el grupo) y una ítem en la colección devuelta (es decir, los ítems que coinciden con la clave de ese grupo) para llegar al ítem resultante. Esta es la manera más simple (¡creo!) de aplanar una agrupación en una secuencia de ítems con sus claves .
Lo anterior no ha sido probado, por lo que podría ser completamente incorrecto. También es relativamente ineficiente ... es una pena que no haya forma de construir una instancia de Lookup
directamente. Podría implementar ILookup
usted mismo, por supuesto.
- 1. ILookup versus IGrouping
- 2. cómo convertir la unión sql a linq
- 3. LINQ convertir DateTime a la cadena
- 4. Convertir consulta SQL a LINQ
- 5. Linq - ¿Cómo convertir de plano a jerárquico?
- 6. Cómo obtener valores de IGrouping
- 7. IQueryable IGrouping cómo trabajar
- 8. obtener la propiedad "Valor" en IGrouping
- 9. Búsqueda de comodín para LINQ
- 10. Convertir LINQ ObjectQuery IQueryable a IEnumerable
- 11. Convertir cadena a matriz int usando LINQ
- 12. Linq a Sql cualquier consulta de búsqueda de palabra clave
- 13. ¿Beneficios de la búsqueda manual sobre la unión en LINQ?
- 14. Página de búsqueda con MVC + Linq + EF
- 15. Búsqueda de control recursivo con LINQ
- 16. favor me ayude a convertir a SQL LINQ
- 17. Múltiples parámetros de búsqueda con LINQ
- 18. Cómo eliminar un elemento de un IGrouping
- 19. búsqueda de texto completo en LINQ
- 20. ¿Cuál es la clase de implementación para IGrouping?
- 21. búsqueda de LINQ usando caracteres WildCards como *,% ,?
- 22. Cómo convertir resultados de linq a HashSet o HashedSet
- 23. .NET: Convertir de LINQ a SQL en Entity Framework
- 24. Convertir LINQ OrdenarPor a inplace lista de ordenación
- 25. ¿Cómo iterar una interfaz IGrouping <T>?
- 26. Convertir la consulta de linq a la matriz de cadenas - C#
- 27. ¿Cómo lidiar con Linq a la excepción de búsqueda de NHibernate al seleccionar agregados?
- 28. Convertir consulta SQL (con subconsulta correlacionada) a LINQ en C#
- 29. C# Linq a SQL: Cómo expresar "CONVERTIR ([...] COMO INT)"?
- 30. NHibernate Cómo convertir esta consulta SQL a QueryOver o Linq