无法将类型从 IOrderedQueryable 隐式转换为 List

本文关键字:转换 List IOrderedQueryable 类型 | 更新日期: 2023-09-27 18:32:07

我在seminariolista =行上收到以下错误:

无法将类型从 IOrderedQueryable 隐式转换为列表

public List<Seminario> Listarseminariomodal()
{
    var seminariolista = new List<Seminario>();
    try
    {
        using (var ctx = new ProyectoContext_())
        {
            seminariolista = ctx.Seminario.Where(x => x.modal == 1)
            .OrderBy(x => x.orden);
        }
    }
    catch (Exception)
    {
        throw;
    }
    return seminariolista;
}

视觉工作室截图

无法将类型从 IOrderedQueryable<T> 隐式转换为 List<T>

可能将其定义为

IEnumerable<Seminario> seminariolista = null;

并将其返回为

return seminariolista.ToList();

会工作。

但总的来说,在我看来,返回 List 对象不是一个好主意,除非您明确需要它。我会返回一个 IEnumeralible,以保持方法签名尽可能通用。因此,在我看来,您的代码的最佳解决方案,并且不知道您的应用程序和其余代码的要求:

public IEnumerable<Seminario> Listarseminariomodal()
{
    IEnumerable<Seminario> seminariolista = null;
    try
    {
        using (var ctx = new ProyectoContext_())
        {
            seminariolista = ctx.Seminario.Where(x => x.modal == 1)
            .OrderBy(x => x.orden);
        }
    }
    catch (Exception)
    {
        throw;
    }
    return seminariolista.ToArray();
}

请注意末尾的ToArray()调用,以将 LINQ 内容隐藏在方法主体之外。

相关文章: