asp.net – 简单LINQ和列表错误:WhereListIterator`1 [任务]’类型’System.Collections.Generic.List`1 [任务]

我无法理解我的错误

方法

public List<Task> GetAllTasks()
{
    var AllTasks = from t in tasks
                   where t.Status.ToString() == "Completed" || t.Status.ToString() == "Pending"
                   select t;

    return (List<Task>)AllTasks;
}

代码背后:

protected void Page_Load(object sender,EventArgs e)
{
    TaskList tdl = (TaskList)Session["TodoList"];
    List<Task> AllTasks = tdl.GetAllTasks();
    string str = "";

    foreach (Task t in AllTasks)
    {
        str += t.ToString() + "<br />";
    }

    LblTasks.Text = str;

}

添加任务(AddTask.aspx)后,我重定向到另一个页面显示它们,然后我得到运行时错误

无法强制类型为“WhereListIterator1 [Task]”的对象键入“System.Collections.Generic.List1 [Task]”。

我的LINQ有什么问题吗?我刚刚学了昨天hehe。

谢谢。

解决方法

你只需要一个.ToList()直接对查询或当你返回它。作为
var AllTasks = (from t in tasks
               where t.Status.ToString() == "Completed" || t.Status.ToString() == "Pending"
               select t).ToList();

要么

return AllTasks.ToList();

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....