Cláusulas let en C#
Nombrar un valor intermedio una vez y usarlo tres veces.
var words = new[] { "kernel", "shell", "compiler", "linker" };
// let nombra un valor intermedio dentro de la consulta
var report =
from w in words
let vowels = w.Count(c => "aeiou".Contains(c))
where vowels >= 2
orderby vowels descending, w
select $"{w}: {vowels} vowels";
Console.WriteLine(string.Join("\n", report));
Cómo funciona
let vowels = ...calcula por elemento y queda en el ámbito.whereyorderbylo reutilizan sin recalcular a mano.- El select construye su cadena desde la misma vinculación.
Palabras clave y builtins usados aquí
descendingfrominletneworderbyselectstringvarwhere
El intento, en números
- Líneas
- 11
- Caracteres a escribir
- 321
- Tokens
- 66
- Ritmo de tres estrellas
- 90 tpm
Al ritmo de tres estrellas de 90 tokens por minuto, este intento toma unos 44 segundos.
Paso 2 de 3 en Sintaxis de consulta; paso 11 de 17 en LINQ a fondo.