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

如何在Console App中实现List对象新增、自动命名及指定对象属性修改?

实现方案

你可以按以下步骤修改代码实现需求:

1. 改造Boats类实现自动命名

首先给Boats类添加静态计数器、名称属性,统一管理船只列表,保证生成的名称唯一不重复:

public class Boats
{
    // 静态计数器,全局统计船只总数
    private static int _boatCount = 0;
    // 静态存储所有船只的列表
    public static List<Boats> BoatList { get; private set; } = new List<Boats>();
    
    // 船只名称属性,初始化时自动赋值
    public string Name { get; }
    // 船只速度属性
    public int Speed { get; set; }

    public Boats()
    {
        // 每新建一个实例,计数器+1,生成对应名称
        _boatCount++;
        Name = $"boat{_boatCount}";
    }

    // 新增船只到列表的方法
    public void AddBoatList(Boats boat)
    {
        BoatList.Add(boat);
        Console.WriteLine($"\n已成功创建新船:{boat.Name}");
    }

    // 修正后的新建船只交互方法
    public static void NewBoat()
    {
        Console.WriteLine("\n如果需要创建新船,请按下+键");
        if (Console.ReadKey().KeyChar == '+') 
        {
            var newBoat = new Boats();
            newBoat.AddBoatList(newBoat);
        }
        else 
        {
            Console.WriteLine("\n输入无效");
        }
    }
}

注意:原来的NewBoat方法里重复实例化了两次Boats对象,这里已经做了冗余删除。

2. 实现按名称修改船只速度的功能

你可以新增一个静态方法实现按名称匹配船只,修改速度:

public static void ModifyBoatSpeed()
{
    Console.WriteLine("\n请输入要修改速度的船只名称:");
    string targetName = Console.ReadLine()?.Trim() ?? string.Empty;
    // 从列表中匹配名称一致的船只
    var targetBoat = BoatList.FirstOrDefault(b => b.Name.Equals(targetName, StringComparison.OrdinalIgnoreCase));
    if (targetBoat == null)
    {
        Console.WriteLine("未找到对应名称的船只");
        return;
    }

    Console.WriteLine($"请输入{targetBoat.Name}的新速度:");
    if (int.TryParse(Console.ReadLine(), out int newSpeed))
    {
        targetBoat.Speed = newSpeed;
        Console.WriteLine($"修改成功,{targetBoat.Name}当前速度为:{targetBoat.Speed}");
    }
    else
    {
        Console.WriteLine("输入的速度格式无效");
    }
}

3. 初始化及调用示例

在Program的主逻辑中按以下方式初始化和调用即可:

// 初始化前两艘船,会自动命名为boat1、boat2
Boats boat1 = new Boats();
boat1.Speed = 15;
Boats boat2 = new Boats();
boat2.Speed = 26;

// 添加到全局列表
Boats.BoatList.Add(boat1);
Boats.BoatList.Add(boat2);

// 调用新建船功能
Boats.NewBoat();
// 调用修改速度功能
Boats.ModifyBoatSpeed();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 01:39:05