Aller au contenu

Opérateurs streaming vs buffering

Contexte : Les opérateurs streaming produisent les résultats un par un au fur et à mesure qu’ils itèrent sur la source. Les opérateurs buffering consomment toute la source avant de produire un résultat.

Where, Select, Take, Skip, SelectMany (traitent les éléments à la volée).

var streaming = numbers.Where(n => n > 2); // produit un par un

OrderBy, GroupBy, Distinct, Reverse (nécessitent toutes les données).

var buffered = numbers.OrderBy(n => n); // lit tous les nombres d’abord

Grands ensembles de données : Utilisez les opérateurs streaming pour éviter de tout charger en mémoire. Évitez OrderBy sur d’énormes collections sauf si nécessaire.

Exemple : Dans System.Reactive (Rx.NET), les opérateurs streaming sont utilisés pour les séquences infinies.