【发布时间】:2016-03-11 10:23:40
【问题描述】:
我正在编写一种方法,该方法应返回列表中与电子邮件字段匹配的所有记录。但是我当前的实现只返回第一个元素,因为我正在使用.FirstOrDefault();
我使用 intellisense 过滤了其他可用的方法,并尝试使用 ToList();
return orderList.Where(c => c.Email == email).ToList();
但我收到一条错误消息,指出它无法转换,因为结果不是列表。我从中了解到结果不是列表类型,但是我怎样才能返回一个列表。
错误 30 无法将类型“System.Collections.Generic.List”隐式转换为“MongoDBApp.Models.OrderModel”
有人知道我如何返回完整的结果集吗?
这是目前只返回匹配电子邮件键的第一个或默认元素的方法:
public async Task<OrderModel> GetByEmailAsync(string email)
{
if (orderList == null)
await LoadDbAsync();
return orderList.Where(c => c.Email == email).FirstOrDefault();
}
还有orderList的类型,OrderModel:
private static List<OrderModel> orderList = new List<OrderModel>();
【问题讨论】:
-
将 GetByEmailAsync 返回类型更改为 Task
>。该错误并不是说结果不是列表,而是告诉您它无法将您返回的 OrderModel 列表转换为单个 OrderModel