如何在C#字符串数组中根据索引替换指定元素?
C#控制台程序:新增数组元素替换功能实现
以下是在现有代码基础上添加替换功能的完整实现,包含输入合法性校验,避免无效索引导致的错误:
Console.WriteLine("Type in 5 names: "); string[] input = new string[5]; for (int i = 0; i < input.Length; i++) { input[i] = Console.ReadLine(); } Console.WriteLine("\n当前姓名列表:"); for (int i = 0; i < input.Length; i++) { int rank = i + 1; Console.WriteLine(rank + ". " + input[i]); } // 新增替换功能逻辑 Console.WriteLine("\n请输入要替换的序号(1-5):"); // 校验输入是否为有效整数 if (int.TryParse(Console.ReadLine(), out int inputIndex) && inputIndex >= 1 && inputIndex <= 5) { // 转换为数组实际索引(数组从0开始) int arrayIndex = inputIndex - 1; Console.WriteLine("请输入新姓名:"); string newName = Console.ReadLine(); // 替换数组对应位置的元素 input[arrayIndex] = newName; Console.WriteLine("\n替换后的姓名列表:"); for (int i = 0; i < input.Length; i++) { int rank = i + 1; Console.WriteLine(rank + ". " + input[i]); } } else { Console.WriteLine("输入的序号无效,请输入1-5之间的数字!"); }
关键逻辑说明
- 输入校验:用
int.TryParse确保用户输入的是有效数字,同时判断输入的序号在1-5范围内,避免数组越界异常 - 索引转换:因为原打印列表是从1开始编号,所以把用户输入的序号减1,对应数组的0起始索引
- 元素替换:直接通过
input[arrayIndex] = newName完成数组元素替换,数组是引用类型,修改后直接生效 - 重新打印:替换完成后再次遍历数组,输出更新后的姓名列表
内容的提问来源于stack exchange,提问作者MikePikePear
相关产品推荐
相关产品推荐

