如何返回异步 IEnumerable

2024-03-07

我有以下方法:

public async IEnumerable<string> GetListDriversAsync()
{
   var drives = await graphClient.Drive.Root.Children.Request().GetAsync();
        foreach (var d in drives)
            yield return d.ToString(); 
}

但编译器错误说:

“异步的返回类型必须为 void、Task 或 Task<T>"

当方法是异步时,如何返回 IEnumerable?


另一种方法是可能的C# 8 https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-8.0/async-streams。它用IAsyncEnumerable https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.iasyncenumerable-1?view=dotnet-plat-ext-3.0.

public async IAsyncEnumerable<string> GetListDriversAsync()
{
    var drives = await graphClient.Drive.Root.Children.Request().GetAsync();
    foreach (var d in drives)
        yield return d.ToString();
}

它会稍微改变您的签名,这可能是(也可能不是)您的选择。

Usage:

await foreach (var driver in foo.GetListDriversAsync())
{
    Console.WriteLine(driver );
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何返回异步 IEnumerable? 的相关文章

  • 在java程序中使用c++ Dll

    我正在尝试使用System LoadLibrary 使用我用 C 编写的一个简单的 dll UseDllInJava java import com sun jna Library import com sun jna Native imp
  • 如何使用 zlib 制作 .zip 文件

    我正在阅读zlib的文档 它相当详细 但我读到了这一行 输出数据将位于zlib格式 与 gzip 或zip formats http www zlib net zlib how html http www zlib net zlib how
  • 内联函数/方法

    声明 内联函数必须在调用之前定义 这个说法正确吗 EDIT 该问题最初是德语 内联功能穆森 弗 伊赫雷姆 奥夫鲁夫定义 sein 也许它对任何人都有帮助 是的 它是正确的 但只是部分正确 它可能正确地重新构建如下 内联函数必须在每个翻译单位
  • Subversion 和 Visual Studio 项目的最佳实践

    我最近开始在 Visual Studio 中处理各种 C 项目 作为大型系统计划的一部分 该系统将用于替换我们当前的系统 该系统是由用 C 和 Perl 编写的各种程序和脚本拼凑而成的 我现在正在进行的项目已经达到了颠覆的临界点 我想知道什
  • ASP.NET Core 与现有的 IoC 容器和环境?

    我想运行ASP NET 核心网络堆栈以及MVC在已托管现有应用程序的 Windows 服务环境中 以便为其提供前端 该应用程序使用 Autofac 来处理 DI 问题 这很好 因为它已经有一个扩展Microsoft Extensions D
  • 对 boost 库的依赖项没有完整路径

    我已经成功构建了动态库 依赖于使用自定义前缀构建和安装的 boost 库 b2 install prefix PREFIX 然而 当我跑步时otool L在我的库中 我得到如下输出 libboost regex dylib compatib
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • 无法解析远程名称 - webclient

    我面临这个错误 The remote name could not be resolved russgates85 001 site1 smarterasp net 当我请求使用 Web 客户端读取 html 内容时 出现错误 下面是我的代
  • TcpClient 在异步读取期间断开连接

    我有几个关于完成 tcp 连接的问题 客户端使用 Tcp 连接到我的服务器 在接受客户端后listener BeginAcceptTcpClient ConnectionEstabilishedCallback null 我开始阅读netw
  • libxml2 xmlChar * 到 std::wstring

    libxml2似乎将所有字符串存储在 UTF 8 中 如xmlChar xmlChar This is a basic byte in an UTF 8 encoded string It s unsigned allowing to pi
  • 使用 WF 的多线程应用程序的错误处理模式?

    我正在写一个又长又详细的问题 但只是放弃了它 转而选择一个更简单的问题 但我在这里找不到答案 应用程序简要说明 我有一个 WPF 应用程序 它生成多个线程 每个线程执行自己的 WF 处理线程和 WF 中的错误 允许用户从 GUI 端进行交互
  • 为什么具有相同名称但不同签名的多个继承函数不会被视为重载函数?

    以下代码片段在编译期间产生 对 foo 的调用不明确 错误 我想知道是否有任何方法可以解决此问题而不完全限定对 foo 的调用 include
  • 分配器感知容器和propagate_on_container_swap

    The std allocator traits模板定义了一些常量 例如propagate on container copy move assign让其他容器知道它们是否应该在复制或移动操作期间复制第二个容器的分配器 我们还有propag
  • C++11 动态线程池

    最近 我一直在尝试寻找一个用于线程并发任务的库 理想情况下 是一个在线程上调用函数的简单接口 任何时候都有 n 个线程 有些线程比其他线程完成得更快 并且到达的时间不同 首先我尝试了 Rx 它在 C 中非常棒 我还研究了 Blocks 和
  • 如何随着分辨率的变化自动调整大小和调整表单控件

    我注意到某些应用程序会更改控件的位置以尽可能适应当前的分辨率 例如 如果窗口最大化 则控件的设置方式应使整个 GUI 看起来平衡 是否可以使用 C 在 Visual studio 2010 中制作或实现此功能 Use Dock http m
  • .NET 客户端中 Google 表格中的条件格式请求

    我知道如何在 Google Sheets API 中对值和其他格式进行批量电子表格更新请求 但条件格式似乎有所不同 我已正确设置请求 AddConditionalFormatRuleRequest formatRequest new Add
  • 使用 iTextSharp 5.3.3 和 USB 令牌签署 PDF

    我是 iTextSharp 和 StackOverFlow 的新手 我正在尝试使用外部 USB 令牌在 C 中签署 PDF 我尝试使用从互联网上挖掘的以下代码 Org BouncyCastle X509 X509CertificatePar
  • Visual Studio 2017 完全支持 C99 吗?

    Visual Studio 的最新版本改进了对 C99 的支持 最新版本VS2017现在支持所有C99吗 如果没有 C99 还缺少哪些功能 No https learn microsoft com en us cpp visual cpp
  • 类中不允许使用不完整类型,但类模板中允许使用不完整类型

    以下为无效代码 struct foo struct bar bar x error field x has incomplete type struct bar int value 42 int main return foo x valu
  • 为什么文件更新时“如果较新则复制”不复制文件?

    我在 Visual Studio Express 中有一个解决方案 如下所示 The LogicSchemaC 中的类 将在运行时解析指定的 XML 文件 以下是在main的方法Program cs LogicSchema ls new L

随机推荐

  • 如何仅从网站上刮掉 标记

    我正在研究网络爬虫 目前我抓取了整个内容 然后使用正则表达式删除
  • 读取数据文件时将任意列值传递到 D3 可视化

    我正在使用 D3 直方图可视化 并希望传递不一定名为 字母 或 频率 的标题 如果我尝试更改以下代码块中的列属性 则不会显示任何可视化效果 如何传入任意列名称 d3 tsv datapath type function error data
  • 如何从 Java 应用程序将 SQL 文件(存储在 Java 项目的源文件夹中)加载到 MySQL 中?

    我想在运行时将 SQL 文件 存储在 NetBeans Java 项目的源文件夹中 从我的 Java 应用程序加载到 MySQL 中 我怎样才能做到这一点 SQL 文件大小为 15 15 MB 我想知道是否可以复制到字符串中 或者 如果我无
  • 构建时 Swift 编译器分段错误

    添加 方便的 计算height财产给UIView in my UIViewExtension swift文件导致 Swift 编译器出现段错误 这里可能出了什么问题 0 swift 0x00000001061e5608 llvm sys P
  • 在 Scala 中使用 FoldLeft 将参数列表应用于柯里化函数

    是否可以做一个foldLeft在参数列表上 其中提供给折叠的初始值是完全柯里化函数 运算符是apply 列表是要传递给函数的参数列表f 例如 假设 f 定义为 scala gt val f i Int j Int k Int l Int g
  • R,更改轴刻度线和刻度线标签之间的距离

    在下面的示例中 我在 0 95 处绘制了一个自定义刻度线 根据 Thomas 的建议进行编辑以使标签水平 d matrix runif 40 ncol 4 colnames d c a b c d barplot d beside T co
  • 调用eachParallel() 时的 Groovy (GPars) 和 MissingMethodException

    当我在控制台中运行以下代码时 groovy 2 1 3 strings butter bread dragon table strings eachParallel println it0 I get groovy lang Missing
  • 无法使用 MapStruct 将属性 String 映射到 JAXBElement

    所以我玩了一下 Mapstruct 阅读了版本 1 1 0 Final 的参考文档 并得出了这一点 隐式类型转换 http mapstruct org documentation stable reference html implicit
  • Python - Sympy 最小值和最大值

    我正在尝试学习 sympy 的微积分函数 并且我能够通过以下方式尽可能获得极值临界点的二阶导数的根 import numpy as np from numpy import linspace math arange linspace fro
  • MVVM、ObservableCollection、异步等

    因此 我正在进入下一阶段的教育 并且已经遇到了与 SQLite 使用相关的一些障碍 这是一个通用应用程序 我当前的重点是该解决方案的 Windows Phone 方面 我的问题在某种程度上独立于 SQLite 但我将使用它作为示例 我正在将
  • 如何展示在线用户

    我正在编写一个简单的聊天 我需要列出在线用户 我不使用devise对于身份验证 有一个自定义user通过验证的模型omniauth user rb class User lt ActiveRecord Base has many messa
  • 验证 Facebook Connect 会话

    我正在编写一个应用程序 它有多个前端客户端 使用 Facebook Connect 作为单点登录解决方案 例如 其中一个客户端在 iOS 平台上运行 因此所有 Facebook 身份验证都通过 iOS Facebook SDK 在客户端上进
  • MySql - 计算多行的时间差

    我有一个包含制造装配数据的表 包括时间戳 我试图确定 作业 开始之间的平均间隔 以分钟为单位 我返回 id 和时间的查询如下所示 select job id job started from JobTable where job start
  • chrome 扩展 - 我如何等待 chrome.runtime 函数?

    我在后台的操作是访问该站点并从那里获取信息 问题是代码在收到信息之前继续运行 附上显示问题的代码 背景 js chrome runtime onMessage addListener function request sender send
  • 将警告视为 TFS 级别 VS2017 上的错误

    我已经为此苦苦挣扎了一段时间 我搜索并尝试了不同的方法 但它不起作用 所以我将其发布在这里 我想在 TFS 级别构建时将警告视为错误 但此选项不起作用 我已经按照其他帖子上的建议完成了 我已经尝试过 p TreatWarningsAsErr
  • 如何使用 Excel VBA 将项目添加到 Sharepoint 列表?

    我有一个基于 Excel 的应用程序 它收集一些用户输入 并根据该用户输入进行一些计算 应用程序本身不存储任何用户输入或计算 目前 每当用户运行该应用程序时 它都会将数据发送到 Access 数据库并向 Access 表中插入一行xlTab
  • 每行读取行的最快方法是什么

    我有一个巨大的字符串文件 所有行都应添加到我的代码中的列表中 最快的方法是什么 我发现this https stackoverflow com questions 9093888 fastest way of reading relativ
  • C++ 流混淆:istreambuf_iterator 与 istream_iterator?

    有什么区别istreambuf iterator and istream iterator 一般来说 流和streambufs之间有什么区别 我真的找不到任何明确的解释 所以决定在这里询问 IOstreams 使用streambufs 作为
  • 使用 SQL 从 XML 中删除具有特定值的节点

    我正在尝试解析一段 XML 并删除包含某些值的节点 如果值准确 我知道如何删除它们 但我想使用 包含 之类的东西 这可以准确删除 update XML set data modify delete Message text customer
  • 如何返回异步 IEnumerable

    我有以下方法 public async IEnumerable