Junior — Middle
How is deferred data processing implemented when retrieving data from a source?
sobes.tech AI
Answer from AI
In C#, deferred data processing when retrieving data from a source is usually implemented using lazy collections and iterators with the yield keyword. This allows fetching and processing elements as needed, rather than loading all data at once.
Example of using yield for deferred processing:
IEnumerable<int> GetNumbers()
{
for (int i = 0; i < 10; i++)
{
yield return i; // returns one element at a time during iteration
}
}
foreach (var number in GetNumbers())
{
Console.WriteLine(number); // elements are processed as requested
}
For asynchronous deferred processing, IAsyncEnumerable<T> and await foreach can be used in newer C# versions.
Thus, deferred processing helps save memory and improve performance, especially when working with large data volumes.