Lookup<TKey, TElement> vs Dictionary<TKey, List<TValue>> para claves duplicadas en C#
Usa ToLookup cuando agrupas una sola vez y solo lees: es inmutable, devuelve una secuencia vacía para claves inexistentes, acepta claves null y conserva el orden de primera aparición. Usa Dictionary<TKey, List<TValue>> cuando los grupos cambian después de la construcción o cruzan una frontera JSON.