如何返回列表中所有元素匹配字段<Foo>?



我正在编写一个方法,该方法应该返回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>

相关内容

最新更新