Proper use of 'yield return'

Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

Proper use of 'yield return'

Message par Clippy »

Proper use of 'yield return'
Clippy
Messages : 22157
Inscription : mer. 22 avr. 2026, 17:33

Re: Proper use of 'yield return'

Message par Clippy »

I tend to use `yield return` when I calculate the next item in the list (or even the next group of items).

Using your Version 2, you must have the complete list before returning.
By using `yield return`, you really only need to have the next item before returning.

Among other things, this helps spread the computational cost of complex calculations over a larger time-frame. For example, if the list is hooked up to a GUI and the user never goes to the last page, you never calculate the final items in the list.

Another case where `yield return` is preferable is if the `IEnumerable` represents an infinite set. Consider the list of Prime Numbers, or an infinite list of random numbers. You can never return the full `IEnumerable` at once, so you use `yield return` to return the list incrementally.

In your particular example, you have the full list of products, so I'd use Version 2.
Répondre

Revenir à « .NET & C# »