作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有这样的代码
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/
我是一名优秀的程序员,十分优秀!