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

控制台应用中如何在运行时将用户输入保存到array中?

解决Switch Case中输入数据丢失的问题

问题根源在于你在case 2内部定义的firstName、lastName、mobileNo都是局部变量,一旦跳出这个case,这些变量就会被销毁,数据自然丢失。要在程序运行期间保留数据,需要把存储数据的数组(或对象)放在switch语句的外层作用域中。

步骤1:定义联系人数据结构(可选但更规范)

用类封装联系人信息,比单独的字符串/整数数组更易维护:

public class Contact
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int MobileNo { get; set; }
}

步骤2:在外层声明数组和计数变量

在switch所在的方法(比如Main方法)开头,声明存储联系人的数组和记录已保存数量的变量:

// 初始化数组,假设最多存储100个联系人,可按需调整大小
Contact[] contacts = new Contact[100];
int contactCount = 0; // 记录已添加的联系人数量

步骤3:修改Case 2的代码,将输入存入数组

把输入的联系人信息存入外层数组,而非仅用局部变量:

case 2:
    Console.WriteLine("Enter first name:");
    string firstName = Console.ReadLine();

    Console.WriteLine("Enter last name:");
    string lastName = Console.ReadLine();

    Console.WriteLine("Enter your phone number:");
    // 用TryParse避免输入非数字时程序崩溃
    if (int.TryParse(Console.ReadLine(), out int mobileNo))
    {
        // 创建联系人对象并存入数组
        contacts[contactCount] = new Contact
        {
            FirstName = firstName,
            LastName = lastName,
            MobileNo = mobileNo
        };
        contactCount++;

        Console.WriteLine($"{firstName}, {lastName}, {mobileNo}");
    }
    else
    {
        Console.WriteLine("电话号码格式错误,请输入有效整数。");
    }
    break;

步骤4:添加查看联系人的Case(可选)

可以加一个case验证数据是否被保留:

case 3:
    Console.WriteLine("已保存的联系人:");
    for (int i = 0; i < contactCount; i++)
    {
        var contact = contacts[i];
        Console.WriteLine($"{i+1}. {contact.FirstName}, {contact.LastName}, {contact.MobileNo}");
    }
    break;

关键说明

  • 外层作用域的数组contacts和contactCount在整个程序运行期间都会存在,所有case都能访问和修改它们,因此输入的数据不会丢失。
  • 如果需要动态扩容数组(比如超过100个联系人),可以手动实现数组复制:
    if (contactCount == contacts.Length)
    {
        // 扩容为原来的2倍
        Array.Resize(ref contacts, contacts.Length * 2);
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 02:17:35