迭代任务列表C#

迭代任务列表C#,第1张

概述我有这样的代码 public async Task<List<User>> GetUsersByField(string fieldName, string fieldValue) { var filter = Builders<User>.Filter.Eq(fieldName, fieldValue); var result = await _users 我有这样的代码

public async Task<List<User>> GetUsersByFIEld(string fIEldname,string fIEldValue)    {        var filter = Builders<User>.Filter.Eq(fIEldname,fIEldValue);        var result = await _usersCollection.Find(filter).ToListAsync();        return result.ToList();    }

当我尝试使用迭代它时

foreach(var w in GetUsersByFIEld("name",John"))

它显示错误

“does not contain a public deFinition for ‘GetEnumerator'”

我试过用

public async IEnumerable<Task<List<User>>> GetUsersByFIEld(string fIEldname,string fIEldValue)

但仍显示错误.有什么建议?

解决方法 使用这样的异步方法

public async Task<List<User>> GetUsersByFIEld(string fIEldname,string fIEldValue

建议等待它

public async Task MyCallingMethod(){    var users = await GetUsersByFIEld(...);    foreach(var w in users )     {       ...    }}

要么

public async Task MyCallingMethod(){    foreach(var user in await GetUsersByFIEld(...))     {        ...     }}

通过调用Result还有其他方法,但不要让那个兔子洞掉下来

简而言之,让Async Await Pattern通过代码像病毒一样传播

补充阅读

Stephen Cleary:Async and Await

总结

以上是内存溢出为你收集整理的迭代任务列表C#全部内容,希望文章能够帮你解决迭代任务列表C#所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1215141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存