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

如何将实例化对象添加到List并打印列表?C#作业存对象到List遇阻

解决实例化对象存入List并打印列表的问题

嘿,我来帮你搞定这个作业里的问题!你现在的核心困扰是没法把创建的地点对象存入List,同时需要实现查看完整列表的功能,我一步步给你拆解实现方法:

1. 先定义地点实体类

首先咱们得有一个Place类来封装地点的信息(比如名称、有趣的点),这样才能把每个地点作为独立对象存入List:

public class Place
{
    public string Name { get; set; }
    public string Description { get; set; }

    // 构造函数,方便创建对象时直接赋值
    public Place(string name, string description)
    {
        Name = name;
        Description = description;
    }
}

2. 在Test类里维护静态List

因为你是通过Test类的静态方法来操作的,所以咱们在Test类里定义一个静态的List,这样所有静态方法都能共享这个列表:

public class Test
{
    // 静态列表,用来存储所有添加的地点对象
    private static List<Place> _places = new List<Place>();

    // 保留你的提示方法,用来引导用户输入
    public static void DisplayInstructions()
    {
        WriteLine("欢迎输入你想去的有趣地点!");
        WriteLine("请输入地点名称和它有趣的地方~");
    }

3. 修改AddPlace方法,存入对象到List

接下来修改AddPlace方法,让它接收用户输入,实例化Place对象,然后添加到静态列表里:

public static void AddPlace()
    {
        Write("请输入地点名称:");
        string placeName = ReadLine();

        Write("请输入这个地点有趣的原因:");
        string placeDesc = ReadLine();

        // 实例化Place对象并添加到列表
        _places.Add(new Place(placeName, placeDesc));
        WriteLine("地点已成功添加!");
    }

4. 新增打印列表的方法

咱们再加一个DisplayPlaces方法,用来遍历List并打印所有地点的详细信息:

public static void DisplayPlaces()
    {
        if (_places.Count == 0)
        {
            WriteLine("目前还没有添加任何地点哦~");
            return;
        }

        WriteLine("\n=== 你想去的有趣地点列表 ===");
        for (int i = 0; i < _places.Count; i++)
        {
            WriteLine($"{i+1}. 地点:{_places[i].Name}");
            WriteLine($"   有趣的点:{_places[i].Description}\n");
        }
    }
}

5. 完善Main方法的交互逻辑

最后修改Main方法,让用户可以选择添加新地点、查看列表,或者退出程序:

class Program
{
    static void Main()
    {
        Test.DisplayInstructions();

        while (true)
        {
            Test.AddPlace();

            WriteLine("\n请选择操作:");
            WriteLine("1. 添加另一个地点");
            WriteLine("2. 查看所有地点");
            WriteLine("3. 退出程序");
            Write("请输入选择(1/2/3):");
            string choice = ReadLine().Trim();

            switch (choice)
            {
                case "1":
                    continue;
                case "2":
                    Test.DisplayPlaces();
                    break;
                case "3":
                    WriteLine("程序结束,再见!");
                    return;
                default:
                    WriteLine("输入无效,请重新选择!");
                    break;
            }
        }
    }
}

关键要点说明

  • 用**静态List**是因为咱们用的是Test类的静态方法,静态成员可以在类的所有静态方法中共享,不用实例化Test类就能访问
  • 添加对象时,通过_places.Add(new Place(xxx, xxx))把新创建的Place实例存入列表
  • 打印列表时,遍历List的每个元素,直接输出对象的属性值即可

内容的提问来源于stack exchange,提问作者Red Rabbit

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:16:35