.NET Core打包的IAsyncEnumerable似乎没有任何包含的linq支持。能够执行诸如ToList和Count之类的简单事情的正确方法是什么?
这是一个很好的问题,因为在IntelliSense中,几乎没有有用的项目,IAsyncEnumerable<T>
开箱即用默认.NET Core应用程序提供的隐式框架引用。
预计您将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
等...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句