typestar

GroupJoin en C#

El primo del left join: cada fila izquierda con su grupo de coincidencias.

var authors = new[] { (Id: 1, Name: "Ada"), (Id: 2, Name: "Alan") };
var papers = new[]
{
    (AuthorId: 1, Title: "Notes"), (AuthorId: 1, Title: "Sketch"),
};

// GroupJoin conserva cada fila izquierda con sus coincidencias, aun vacías
var report = authors.GroupJoin(papers,
    a => a.Id, p => p.AuthorId,
    (a, ps) => $"{a.Name}: {ps.Count()} papers");
Console.WriteLine(string.Join("\n", report));

Cómo funciona

  1. GroupJoin empareja cada autor con una secuencia de sus artículos.
  2. Un autor sin artículos igual aparece, con un grupo vacío.
  3. ps.Count() colapsa cada grupo a un número.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
11
Caracteres a escribir
391
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 Joins y lookups; paso 8 de 17 en LINQ a fondo.

← Anterior Siguiente →