typestar

SelectMany en C#

Aplanar una secuencia de secuencias en un solo stream.

var teams = new Dictionary<string, string[]>
{
    ["compilers"] = new[] { "Ada", "Grace" },
    ["theory"] = new[] { "Alan", "Kurt" },
};

// SelectMany aplana un nivel: todos los miembros, una secuencia
var everyone = teams.SelectMany(t => t.Value);
Console.WriteLine(string.Join(",", everyone));

// conserva el nombre del equipo junto a cada miembro
var pairs = teams.SelectMany(t => t.Value.Select(m => $"{m}@{t.Key}"));
Console.WriteLine(string.Join(" ", pairs));

Cómo funciona

  1. SelectMany(t => t.Value) produce cada miembro de cada equipo.
  2. El Select anidado mantiene el nombre del equipo pegado a cada miembro.
  3. Un nivel de anidación desaparece por llamada.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
13
Caracteres a escribir
461
Tokens
102
Ritmo de tres estrellas
85 tpm

Al ritmo de tres estrellas de 85 tokens por minuto, este intento toma unos 72 segundos.

Escribe este fragmento

Paso 2 de 3 en Dar forma; paso 2 de 17 en LINQ a fondo.

← Anterior Siguiente →