在IAsyncEnumerable中使用linq类型方法的正确方法是什么?

问题描述 投票:0回答:1

。NET Core打包的IAsyncEnumerable似乎不包含任何linq支持。能够执行诸如ToList和Count之类的简单事情的正确方法是什么?

c#
1个回答
1
投票

这是一个好问题(不确定为什么人们投票关闭),因为IAsyncEnumerable<T>上几乎没有成员带有默认.NET Core应用程序具有的隐式框架引用。

预计您将像这样添加System.Linq.Async(已知为Ix Async,see here)包:

<PackageReference Include="System.Linq.Async" Version="4.0.0" />

然后您可以使用CountAsyncToListAsync

async IAsyncEnumerable<int> Numbers()
{
    yield return 1;
    await Task.Delay(100);
    yield return 2;
}

var count = await Numbers().CountAsync();
var myList = await Numbers().ToListAsync();
© www.soinside.com 2019 - 2024. All rights reserved.