estoy teniendo problemas para entender mi errorLINQ simple y el error de lista: WhereListIterator`1 [Tarea]' al tipo 'System.Collections.Generic.List`1 [Tarea]'
Método:
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;
}
código subyacente:
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;
}
Después añado una tarea (AddTask.aspx) vuelvo a dirigir a otra página para mostrar ellos, entonces me sale el error de ejecución:
No se puede convertir el objeto del tipo 'WhereListIterator 1[Task]' to type 'System.Collections.Generic.List
1 [Task]'.
¿Hay algún problema con mi LINQ? Me acabo de enterar ayer jeje.
Gracias.
Gracias mucho! Eso funciona. Veo el punto de ToList(), pero ¿cómo es que el elenco típico no funciona? –
@Ken, los métodos de consulta de LINQ están diseñados para funcionar contra cualquier secuencia que implemente 'IEnumerable', y se evalúan de forma diferida. La fuente que es una 'Lista ' no es relevante. Si desea colecciones concretas, han proporcionado métodos para respaldar eso, como 'ToArray(), ToList(), ToDictionary(),' etc. –
¡Una solución tan simple, gracias! –