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

VB.NET输出数组显示System.Int32[]及冒泡排序代码问题求助

VB.NET问题解答

一、输出数组返回System.Int32[]的原因

  • 你直接将数组变量传入输出方法(如Console.WriteLine)时,默认调用的是数组基类Object的ToString()方法,该方法默认返回对象的类型名称而非内部元素,所以会得到System.Int32[]的输出结果。
  • 解决方案:使用String.Join()方法拼接数组所有元素后再输出,示例如下:
' 以逗号为分隔符拼接所有数组元素后输出
Console.WriteLine(String.Join(", ", arrayToSort))

二、冒泡排序代码存在的问题

你提供的排序代码存在两处明显错误:

  1. 变量名不匹配:内层循环声明的迭代变量是valueWithinArray,但大小判断、交换逻辑里用的是未声明的arrayValue,会直接触发编译错误,需要把所有逻辑里的arrayValue替换为valueWithinArray。
  2. 外层循环边界错误:冒泡排序仅需要执行数组长度-1次外层循环即可完成排序,你写的0 To arrayToSort.Length会多执行一次无效循环,还存在索引越界风险,正确边界应为0 To arrayToSort.Length - 2。

修正后的完整可运行代码

' 初始化待排序数组:存储9到2的所有整数
Dim arrayToSort(7) As Integer
For i As Integer = 0 To 7
    arrayToSort(i) = 9 - i
Next

' 修正后的冒泡排序,内层循环优化为仅遍历未排序区间
For numberOfRunsCompleted As Integer = 0 To arrayToSort.Length - 2
    For valueWithinArray As Integer = 0 To arrayToSort.Length - 2 - numberOfRunsCompleted
        If arrayToSort(valueWithinArray) > arrayToSort(valueWithinArray + 1) Then
            Dim tempStorage As Integer = arrayToSort(valueWithinArray)
            arrayToSort(valueWithinArray) = arrayToSort(valueWithinArray + 1)
            arrayToSort(valueWithinArray + 1) = tempStorage
        End If
    Next
Next

' 输出排序后的数组
Console.WriteLine(String.Join(", ", arrayToSort))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 10:39:04