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

C#实现冒泡排序时数组下标取值错误并报IndexOutOfRangeException如何解决

问题排查结果

核心错误原因

  • 混淆了数组元素值与数组索引的概念:你代码中int i = numbers[0]已经成功获取到数组第一个元素的取值2,但后续你执行Console.WriteLine(numbers[i])时,是用这个元素值2作为索引去访问数组,C#数组索引从0开始计数,索引2对应数组的第三个元素,所以你会拿到错误的第三个元素值。
  • 第二段代码存在索引越界问题:numbers[7]的取值为9,你的数组总长度为9,合法索引范围是0~8,调用numbers[9]会直接抛出IndexOutOfRangeException运行时异常。

修正后代码

如果你需要直接打印数组第一个元素、第8个(索引为7)元素的取值,直接输出对应索引的元素即可,不需要嵌套第二层数组索引:

using System;
public class Bubble_Sort
{
    public static void Main(string[] args)
    {
        int[] numbers = new int[] { 2, 3, 4, 5, 6, 7, 8, 9, 10 };
        // 输出第一个元素(索引0)
        Console.WriteLine(numbers[0]);
        // 输出索引为7的元素
        Console.WriteLine(numbers[7]);
        Console.Read();
    }
}

运行修正后的代码输出结果为:

2
9

符合预期的取值结果。

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

相关产品推荐
方舟 Agent Plan

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

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