IAsyncEnumerable<T> — это асинхронный аналог IEnumerable<T>. Вместо обычного foreach можно использовать await foreach, а для получения элементов асинхронно yield return вместе с async и await.Рассмотрим на примере. C
IAsyncEnumerable данные обрабатываются по мере поступления, то есть не нужно ждать загрузки всех данных в память:public async IAsyncEnumerable<int> GetNumbersAsync()
{
for (int i = 1; i <= 5; i++)
{
await Task.Delay(500);
// Имитируем задержку (асинхронно!)
yield return i;
// Возвращаем элемент сразу, не дожидаясь всех остальных
}
}
await foreach (var number in GetNumbersAsync())
{
Console.WriteLine(number);
// Выводит числа по мере их поступления!
}
IAsyncEnumerable<T> – это как потоковое видео, а IEnumerable<T> — это скачивание всего фильма перед просмотром.🐸Библиотека шарписта #буст
