C#在for循环中输出List元素对应索引及代码报错解决方案
报错原因
- 代码尝试将字符串类型的集合元素
"mahdi"直接转换为数值类型,该字符串不满足数字格式要求,直接触发格式转换异常 - 循环条件逻辑错误,List集合的长度应取
Count属性,不可将集合元素值作为循环上限 - 循环体内固定读取
lst[0]的索引,运行后只会重复输出0,无法遍历输出所有元素的索引
修复代码
直接通过for循环的遍历索引获取对应值即可,性能最优:
List<string> lst = new List<string>() { "mahdi", "arshia", "amir" }; for (int i = 0; i < lst.Count; i++) { MessageBox.Show($"元素:{lst[i]},索引:{i}"); }
如果需要用IndexOf方法实现(不推荐,重复查找性能低,且集合存在重复元素时只会返回第一个匹配项的索引),写法如下:
List<string> lst = new List<string>() { "mahdi", "arshia", "amir" }; foreach (var item in lst) { int index = lst.IndexOf(item); MessageBox.Show($"元素:{item},索引:{index}"); }
内容的提问来源于stack exchange,提问作者mahdi noroozi
相关产品推荐
相关产品推荐

