HashSet en C#
Una colección que responde rápido una sola pregunta: ¿ya vi esto antes?
var seen = new HashSet<string> { "read", "eval" };
Console.WriteLine(seen.Add("print")); // true: era nuevo
Console.WriteLine(seen.Add("read")); // false: ya estaba
var other = new HashSet<string> { "eval", "loop" };
seen.IntersectWith(other);
Console.WriteLine(string.Join(",", seen));
Console.WriteLine(seen.Contains("loop"));
Cómo funciona
Adddevuelve false en vez de guardar un duplicado.IntersectWithmuta el conjunto hasta dejar solo el traslape.Containses la prueba de pertenencia en tiempo constante para la que existe el conjunto.
Palabras clave y builtins usados aquí
newstringvar
El intento, en números
- Líneas
- 8
- Caracteres a escribir
- 334
- Tokens
- 87
- Ritmo de tres estrellas
- 95 tpm
Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 55 segundos.
Paso 4 de 4 en Colecciones; paso 14 de 29 en Fundamentos del lenguaje.