I'm having trouble understanding my error
Method:
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;
}
Code Behind:
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;
}
After I add a task (AddTask.aspx) I redirect to another page to display them, then I get the runtime error:
Unable to cast object of type 'WhereListIterator1[Task]' to type 'System.Collections.Generic.List
1[Task]'.
Is there something wrong with my LINQ? I just learned yesterday hehe.
Thanks.
You just need a .ToList()
either directly on the query or when you return it. As in
var AllTasks = (from t in tasks
where t.Status.ToString() == "Completed" || t.Status.ToString() == "Pending"
select t).ToList();
Or
return AllTasks.ToList();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With