如何将实例化对象添加到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
相关产品推荐
相关产品推荐

