。NET Core打包的IAsyncEnumerable似乎不包含任何linq支持。能够执行诸如ToList和Count之类的简单事情的正确方法是什么?
这是一个好问题(不确定为什么人们投票关闭),因为IAsyncEnumerable<T>
上几乎没有成员带有默认.NET Core应用程序具有的隐式框架引用。
预计您将像这样添加System.Linq.Async
(已知为Ix Async,see here)包:
<PackageReference Include="System.Linq.Async" Version="4.0.0" />
然后您可以使用CountAsync
或ToListAsync
:
async IAsyncEnumerable<int> Numbers()
{
yield return 1;
await Task.Delay(100);
yield return 2;
}
var count = await Numbers().CountAsync();
var myList = await Numbers().ToListAsync();