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
GroupJoinempareja cada autor con una secuencia de sus artículos.- Un autor sin artículos igual aparece, con un grupo vacío.
ps.Count()colapsa cada grupo a un número.
Palabras clave y builtins usados aquí
newstringvar
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.
Paso 2 de 3 en Joins y lookups; paso 8 de 17 en LINQ a fondo.