C#控制台记事本foreach遍历笔记时序号全部为0问题求助
C#控制台记事本序号显示异常问题修复
问题根因
你代码中获取笔记序号的逻辑存在错误:
在foreach循环内调用i.IndexOf(i)时,i是当前遍历得到的单条笔记字符串,String.IndexOf()方法的作用是查找指定子串在当前字符串中的首次出现位置,你传入的子串是字符串本身,因此返回值永远为0,最终导致所有笔记前的序号都显示为0。
修复方案
以下两种实现均可正确输出笔记的顺序序号:
方案1:foreach循环配合独立计数器
修改case 2对应的代码块:
case 2: Console.WriteLine("你的笔记: "); // 初始化序号从0开始 int indexNote = 0; foreach (string note in notes) { Console.WriteLine($"{indexNote}. {note}"); // 遍历完一条笔记后序号自增 indexNote++; } break;
方案2:改用for循环直接遍历索引
case 2: Console.WriteLine("你的笔记: "); for (int indexNote = 0; indexNote < notes.Count; indexNote++) { Console.WriteLine($"{indexNote}. {notes[indexNote]}"); } break;
内容的提问来源于stack exchange,提问作者user12962135
相关产品推荐
相关产品推荐

