ToLookup en C#
Un índice uno-a-muchos congelado sobre una secuencia.
var files = new[] { "a.cs", "b.py", "c.cs", "d.md", "e.py" };
// un lookup es un diccionario uno-a-muchos congelado
var byExt = files.ToLookup(f => Path.GetExtension(f));
Console.WriteLine(string.Join(",", byExt[".cs"]));
Console.WriteLine(string.Join(",", byExt[".py"]));
// una clave ausente produce un grupo vacío, nunca una excepción
Console.WriteLine(byExt[".txt"].Count());
Cómo funciona
ToLookup(f => extension)agrupa archivos por su sufijo, una sola vez.- Indexar por clave devuelve el grupo, listo para iterar.
- Una clave ausente produce un grupo vacío, nunca una excepción.
Palabras clave y builtins usados aquí
newstringvar
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 382
- Tokens
- 85
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 57 segundos.
Paso 3 de 3 en Joins y lookups; paso 9 de 17 en LINQ a fondo.