mam problemy ze zrozumieniem mój błądProste LINQ i błędów Lista: WhereListIterator`1 [Zadanie]”wpisz 'System.Collections.Generic.List`1 [zadanie]'
Metoda:
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;
}
Po dodaniu zadania (AddTask.aspx) przekierować na inną stronę, aby je wyświetlić, a następnie pojawia się błąd środowiska wykonawczego:
Nie można rzutować obiektu typu "WhereListIterator 1[Task]' to type 'System.Collections.Generic.List
1 [zadanie]".
Czy coś jest nie tak z moim LINQ? Nauczyłem się wczoraj hehe.
Dzięki.
dziękuję! To działa. Widzę punkt ToList(), ale dlaczego typowy rzut nie działa? –
@Ken, Metody kwerend LINQ są zaprojektowane do pracy przeciwko dowolnej sekwencji implementującej 'IEnumerable' i są leniwie oceniane. Źródło będące "Listą " nie jest istotne. Jeśli chcesz mieć konkretne kolekcje, dostarczyły metody do ich obsługi, takie jak 'ToArray(), ToList(), ToDictionary(),' itd. –
Takie proste rozwiązanie, dziękuję! –