es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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>

}
“`

Tags:  , , , ,

Answer

  1. Avatar for 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 clase TodoCollection que devuelva la lista de tareas, y luego llamar a ese método desde su clase Program. Aquí hay un ejemplo:

    En la clase TodoCollection, agregue el siguiente método:

    public List<task> GetCurrentTasks()
    {
        return _CurrentTasks;
    }
    

    Luego, en su clase Program, actualice el bucle foreach de la siguiente manera:

    case 2:
        foreach(Task newTask in collection.GetCurrentTasks()) 
        {
            Console.WriteLine(newTask.ShowTask());
        }
        break;
    

    Esto recorrerá cada tarea en la lista _CurrentTasks y llamará al método ShowTask() para imprimir el nombre de la tarea.

Comments are closed.