我正在编写一个方法,该方法应该返回List中与电子邮件字段匹配的所有记录。但是,当我使用.FirstOrDefault();
时,我当前的实现只返回第一个元素
我使用intellisense筛选了其他可用的方法,并尝试使用ToList();
return orderList.Where(c => c.Email == email).ToList();
但我收到一个错误,说明它无法转换,因为结果不是List。我从中了解到结果不是列表类型,但我如何才能返回列表。
错误30无法将类型"System.Collections.Generic.List"隐式转换为"MongoDB App.Models.OrderModel"
有人知道我如何返回完整的结果集吗?
这是目前只返回与电子邮件密钥匹配的第一个或默认元素的方法:
public async Task<OrderModel> GetByEmailAsync(string email)
{
if (orderList == null)
await LoadDbAsync();
return orderList.Where(c => c.Email == email).FirstOrDefault();
}
以及类型为OrderModel:的orderList
private static List<OrderModel> orderList = new List<OrderModel>();
将您的方法更改为这种方法应该可以使用
public async Task<List<OrderModel>> GetByEmailAsync(string email)
{
if (orderList == null)
await LoadDbAsync();
return orderList
.Where(c => c.Email == email)
.ToList();
}
对于当前的实现async Task<OrderModel> GetByEmailAsync(string email)
,该方法需要返回单个OrderModel
,因此不能使用Where(...).ToList()
返回List<OrderModel>
。