似乎没有任何包含对 .NET Core 打包的 IAsyncEnumerable 的 linq 支持。能够执行 ToList 和 Count 等简单事情的正确方法是什么?
问问题
3487 次
1 回答
16
IAsyncEnumerable<T>
这是一个很好的问题,因为在默认 .NET Core 应用程序中具有隐式框架引用的IntelliSense 中几乎没有有用的项目。
预计您将添加System.Linq.Async
(称为 Ix Async,请参见此处)包,如下所示:
<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();
正如评论中指出的那样,这些方法本身并没有那么有用,它们应该在您使用更强大的功能之后使用,同时将您的数据保持为异步流,例如SelectAwait
等等WhereAwait
......
于 2019-11-26T23:26:02.120 回答