加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 简单LINQ和列表错误:WhereListIterator`1 [任务]’

发布时间:2020-12-15 19:07:31 所属栏目:asp.Net 来源:网络整理
导读:我无法理解我的错误 方法: public ListTask GetAllTasks(){ var AllTasks = from t in tasks where t.Status.ToString() == "Completed" || t.Status.ToString() == "Pending" select t; return (ListTask)AllTasks;} 代码背后: protected void Page_Load(
我无法理解我的错误

方法:

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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读