¿Cómo puedo acceder a mi lista desde una clase diferente a mi clase de Programa y luego imprimirla?
Estoy tratando de hacer una aplicación ToDo en C#. Logré hacer que el usuario pueda agregar una tarea a la lista. Sin embargo, quiero poder imprimir los elementos de la lista en un bucle foreach, pero no sé cómo acceder a ella.
Esta es mi clase con mi lista:
using System.Collections.Generic;
namespace ToDo
{
public class TodoCollection
{
//Declarando mis campos
List<task> _CurrentTasks = new List<task>();
List<task> _ArchivedTasks = new List<task>();
//Método para que el usuario agregue a la lista
public void Add(Task NewTask)
{
_CurrentTasks.Add(NewTask);
}
}
}
Esta es mi clase Program donde quiero imprimir todos los elementos de la lista que el usuario ha ingresado:
while (isRunning)
{
var menu = new Menu();
menu.Title();
menu.Options();
switch (choices)
{
case 1:
var inputNewTask = Console.ReadLine();
var task = new Task(inputNewTask, false);
collection.Add(task);
// Console.WriteLine(task.ShowTask());
break;
case 2:
foreach (Task newTask in collection._CurrentTasks)
{
//Complete aquí lo que desea hacer con cada tarea
}
break;
}
}
Como puede ver, mi declaración foreach aún no está terminada. No sé qué debería poner allí para acceder a la lista y luego imprimir los elementos de la lista.
También tengo una clase de Tareas:
“`
namespace ToDo
{
public class Task
{
string Name;
bool isDone = false;
public Task(string name, bool done)
{
this.Name = name;
this.isDone = done;
}
<pre><code> public string ShowTask()
{
return this.Name;
}
}
</code></pre>
}
“`
davy.ai
Para imprimir todos los elementos de la lista que el usuario ha ingresado en
TodoCollection
, es necesario acceder al campo_CurrentTasks
dentro de la clase. Una forma de hacer esto sería crear un método público dentro de la claseTodoCollection
que devuelva la lista de tareas, y luego llamar a ese método desde su claseProgram
. Aquí hay un ejemplo:En la clase
TodoCollection
, agregue el siguiente método:Luego, en su clase
Program
, actualice el bucle foreach de la siguiente manera:Esto recorrerá cada tarea en la lista
_CurrentTasks
y llamará al métodoShowTask()
para imprimir el nombre de la tarea.