【问题标题】:Linq methods for IAsyncEnumerableIAsyncEnumerable 的 Linq 方法
【发布时间】:2019-10-14 12:15:22
【问题描述】:

使用IEnumerable<T> 时,可以使用System.Linq 命名空间中的内置扩展方法,例如SkipWhereSelect

当微软在 C#8 中添加 IAsyncEnumerable 时,他们是否也添加了新的 Linq 方法来支持这一点?

我当然可以自己实现这些方法,或者可能找到一些可以做到这一点的包,但如果存在的话,我更愿意使用语言标准方法。

【问题讨论】:

  • 是的,您可以将 linq 与异步枚举一起使用。
  • 您可以为此使用System.Linq.Async

标签: c# c#-8.0 iasyncenumerable


【解决方案1】:

IAsyncEnumerable 的 LINQ 由 System.Linq.Async 支持,它是 reactive extensions for .NET 的一部分。响应式扩展作为一个整体分为两个更大的 NuGet 包:System.ReactiveSystem.Interactive

虽然所有包都保持不变,但扩展现在位于 System.Linq 命名空间中,不再是 System.Linq.Async(感谢 Dzmitry Lahoda)。

Relevant GitHub issue

【讨论】:

  • GitHub issue 已关闭,这是否意味着它不会被添加到语言中,我们将始终不得不继续使用外部包?
  • 它已关闭,因为它已经在另一个包中可用,该包已经可用 in NuGet。甚至 LINQ 也是一个“外部包”——它可以通过 NuGet 获得,但你没有意识到它,因为它被下载为几乎每个模板的依赖项
  • 更新:System.Linq.Async 现在似乎是一个单独的包:nuget.org/packages/System.Linq.Async
猜你喜欢
  • 2020-08-03
  • 2020-04-28
  • 2021-05-01
  • 2019-11-16
  • 1970-01-01
  • 2022-12-14
  • 2020-05-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多