countWhere
¿Cuántos cumplen? Una pasada, un número — filter + size, fusionados.
Lección
«¿Cuántos de estos están vencidos / en oferta / son pares?» se seguía
escribiendo como filter(pred).size() — dos pasos de cadena
y un intermedio perezoso para lo que conceptualmente es un solo fold.
countWhere(pred) es ese fold: recorre el pipeline una vez,
incrementa en cada coincidencia y devuelve el conteo. Nada se
materializa por el camino.
Usa countBy cuando quieras
conteos por clave (un mapa de ellos), y
countWhere cuando el conteo de un solo predicado sea toda
la respuesta. El gemelo async espera su predicado por elemento, como
todo operador *Async.
Adición nativa de Dart — la forma del count { } de Kotlin.
Demo 1 · Un predicado, un número
Demo 2 · Async
Pruébalo tú
Ejercicio: cuenta los precios de respaldo sin un filter.
countBy — conteos por clave ·
size/count — contarlo todo ·
filter — cuando necesitas las coincidencias en sí