我无法理解我的错误
方法:
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();