You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何从Program类访问其他类的List集合并遍历打印内容

解决方案

1. 调整TodoCollection类,开放待办列表访问权限

你当前定义的_CurrentTasks是类私有字段,外部类无法直接访问,需要在TodoCollection类中新增一个公开的只读属性来暴露待办任务集合,避免外部随意修改内部数据:

using System.Collections.Generic;
using System.Collections.ObjectModel; // 需引入此命名空间使用只读集合

namespace ToDo
{
    public class TodoCollection
    {
        // 声明字段
        List<Task> _CurrentTasks = new List<Task>();
        List<Task> _ArchivedTasks = new List<Task>();

        // 新增只读属性,对外暴露当前待办列表
        public IReadOnlyList<Task> CurrentTasks => _CurrentTasks.AsReadOnly();

        // 用户添加任务到列表的方法
        public void Add(Task NewTask)
        {
            _CurrentTasks.Add(NewTask);
        }
    }
}

如果不需要严格控制外部修改,也可以简化为直接返回列表的公开属性:
public List<Task> CurrentTasks => _CurrentTasks;

2. 补全Program类中的foreach打印逻辑

直接访问collection实例的CurrentTasks属性即可:

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

可选优化:显示任务完成状态

可以修改Task类的ShowTask方法,直观区分已完成/未完成任务:

public string ShowTask()
{
    return $"{(isDone ? "[√] 已完成" : "[ ] 待完成")}:{this._Name}";
}

内容的提问来源于stack exchange,提问作者Marcus Rosberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 05:15:04