VB 常用工具类:数组操作好帮手 ArrayUtils
在 VB 开发里,数组和集合处理总藏着不少 “小麻烦”—— 想给数组排个序得写排序算法,从数组里挑符合条件的元素要循环遍历,把字符串数组转成数字数组还得处理格式错误…… 这些操作写起来又费时间又容易出错。今天要给大家分享的 ArrayUtils 工具类,就是专门解决这些麻烦的 “好手”,不管是简单排序还是复杂数据筛选,有了它都能少写很多代码,效率直接拉满!
基础操作:轻松搞定数组排序与去重
先从最常用的数组排序说起。比如有一个杂乱的数字数组,想按从大到小的顺序排列,以前得自己实现冒泡排序或调用复杂接口,现在用 ArrayUtils 一行代码就能搞定:
' 定义无序数字数组
Dim numArray() As Integer = {5, 2, 9, 1, 5, 6}
' 按降序排序
Dim sortedDescArray() As Integer = ArrayUtils.SortArray(numArray, True)
' 输出结果:9,6,5,5,2,1
For Each num In sortedDescArray
Console.Write(num & " ")
Next
数组去重也是高频需求,比如统计用户输入的不重复关键词,用 ArrayUtils 的去重方法,不用再手动记录已出现的元素:
' 带重复元素的字符串数组
Dim strArray() As String = {"苹果", "香蕉", "苹果", "橙子", "香蕉"}
' 去除重复元素
Dim uniqueArray() As String = ArrayUtils.RemoveDuplicates(strArray)
' 输出结果:苹果,香蕉,橙子
For Each str In uniqueArray
Console.Write(str & " ")
Next
进阶功能:精准筛选与类型转换
处理业务数据时,经常需要从数组里筛选符合条件的元素。比如有一个商品价格数组,想筛选出价格大于 50 的商品价格,用 ArrayUtils 的筛选方法,不用写循环判断:
' 商品价格数组
Dim priceArray() As Decimal = {39.9, 69.9, 29.9, 89.9, 45.5}
' 筛选出价格大于50的元素
Dim highPriceArray() As Decimal = ArrayUtils.FilterArray(priceArray, Function(price) price > 50)
' 输出结果:69.9,89.9
For Each price In highPriceArray
Console.Write(price & " ")
Next
数组类型转换也是个让人头疼的问题,比如把用户输入的字符串数组转成整数数组,还要处理格式错误。ArrayUtils 的类型转换方法自带容错,能自动过滤无效元素:
' 包含无效元素的字符串数组
Dim strNumArray() As String = {"123", "456", "abc", "789", "10.5"}
' 转成整数数组,自动过滤非整数元素
Dim intArray() As Integer = ArrayUtils.ConvertToArray(Of Integer)(strNumArray)
' 输出结果:123,456,789
For Each num In intArray
Console.Write(num & " ")
Next
实用场景:数组拼接与统计
做数据报表时,经常需要把多个数组合并成一个。用 ArrayUtils 的拼接方法,不管是同类型数组还是不同类型数组,都能轻松合并:
' 两个整数数组
Dim array1() As Integer = {1, 2, 3}
Dim array2() As Integer = {4, 5, 6}
' 拼接成一个数组
Dim combinedArray() As Integer = ArrayUtils.ConcatArrays(array1, array2)
' 输出结果:1,2,3,4,5,6
For Each num In combinedArray
Console.Write(num & " ")
Next
另外,ArrayUtils 还能快速统计数组的基本信息,比如最大值、最小值、平均值,不用再手动遍历计算:
' 数字数组
Dim statsArray() As Double = {10.2, 20.5, 15.8, 25.1, 18.3}
' 获取最大值
Dim maxVal As Double = ArrayUtils.GetMax(statsArray)
' 获取最小值
Dim minVal As Double = ArrayUtils.GetMin(statsArray)
' 获取平均值(保留1位小数)
Dim avgVal As Double = ArrayUtils.GetAverage(statsArray, 1)
' 输出结果:最大值:25.1,最小值:10.2,平均值:18.0
Console.WriteLine($"最大值:{maxVal},最小值:{minVal},平均值:{avgVal}")
我之前做销售数据统计模块时,用 ArrayUtils 把原本 120 多行的数组处理代码,压缩到了 35 行左右。不仅代码量减少了 70%,还避免了手动排序、筛选时出现的逻辑错误,数据处理效率也提升了近 50%。不管你是做数据统计、用户信息筛选,还是报表生成,ArrayUtils 都能帮你把复杂的数组操作变简单,让开发过程更顺畅!