gpt4 book ai didi

c# - 遍历任务列表 C#

转载 作者:行者123 更新时间:2023-11-30 14:21:35 25 4
gpt4 key购买 nike

我有这样的代码

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)

但仍然显示错误。有什么建议吗?

最佳答案

使用像这样的 async 方法:

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 and Await

关于c# - 遍历任务列表 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54340074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com