Requisitos: Lee blogs técnicos de otras personas, descubre que algunas colecciones llaman método ToLookup, este método no ha sido tocado, y luego consulta los materiales relevantes para aprender el uso de este método de extensión. El método ToLookup devuelve un valor de ToLookup<TSource, TKey> un diccionario uno a muchos para asignar claves a una colección de valores.
GroupBy vs. ToLookup
GroupBy y ToLookup son ambos métodos de extensión LINQ para agrupar colecciones, y la principal diferencia entre ambos es el tipo de retorno y el uso.
El método GroupBy devuelve un objeto IEnumerable<IGrouping<TKey, TElement>>, donde TKey es el tipo que representa la clave de agrupación y TElement es el tipo que representa el tipo elemento. Este método agrupa la colección según el selector de claves especificado y devuelve el resultado de agrupación como una secuencia de objetos IGrouping<TKey, TElement>. IGrouping<TKey, TElement> los objetos representan una colección de elementos con la misma clave. Puedes usar bucles foreach o consultas LINQ para iterar sobre resultados agrupados. El método GroupBy es una operación de ejecución retardada que solo ejecuta la operación de agrupación real cuando empiezas a iterar sus resultados.
El método ToLookup devuelve un objeto ILookup<TKey, TElement>, donde TKey es el tipo que representa la clave de agrupación y TElement es el tipo que representa el tipo de elemento. El método agrupa la colección según el selector de teclas especificado y devuelve el resultado de agrupación como un objeto ILookup<TKey, TElement>. Los objetos ILookup<TKey, TElement> representan una colección de elementos con la misma clave. Puedes usar un indexador o un bucle foreach para acceder a los resultados agrupados. A diferencia de GroupBy, ToLookup es una acción inmediata que ejecuta inmediatamente la acción de agrupación y devuelve el resultado cuando se llama.
Ejemplo: Un estudiante está en una clase, y una clase corresponde a varios estudiantes. La colección de estudiantes contiene información de clase, y los estudiantes de cada clase (o clase especificada) se generan según los grupos de clase.
El código es el siguiente:
Como se muestra a continuación:
Referencia:El inicio de sesión del hipervínculo es visible.
|