VB.NET Array.Sort 降序
时间: 2024-12-17 16:02:02 浏览: 14
在VB.NET中,`Array.Sort()`方法默认是对数组进行升序排序。如果你想要对数组进行降序排序,你需要自定义一个比较器(Comparer)。下面是一个简单的例子,展示如何创建一个降序排序的整数数组:
```vbnet
Imports System.Collections.Generic
' 定义一个整数数组
Dim numbers As Integer() = {5, 3, 8, 1, 9}
' 自定义一个比较器,用于降序排列
Function DescendingCompare(x As Integer, y As Integer) As Integer
Return y.CompareTo(x)
End Function
' 使用自定义的比较器对数组进行降序排序
Dim descendingNumbers = numbers.OrderBy(Function(n) n,DescendingCompare).ToArray()
' descendingNumbers 现在应该是 {9, 8, 5, 3, 1}
```
在上面的代码中,我们创建了一个名为`DescendingCompare`的函数,它接受两个整数作为输入并返回负数表示第一个数字应该排在第二个之后,从而达到降序的效果。
相关问题
VB.net 数组排序
在VB.NET中,数组排序是一个常见的任务,可以使用内置的`Array.Sort`方法对一维数组进行升序排列。以下是基本步骤:
1. **声明和初始化数组**:
```vb.net
Dim numbers(4) As Integer ' 声明一个整数数组,包含5个元素
numbers = {5, 2, 8, 1, 9} ' 初始化数组
```
2. **调用`Sort`方法**:
```vb.net
Array.Sort(numbers) ' 默认是对整个数组进行升序排序
```
如果你想按照自定义规则排序,比如降序,你可以提供一个比较函数作为`Comparison`类型的参数:
```vb.net
Function CompareDescending(x As Integer, y As Integer) As Integer
Return -1 * x.CompareTo(y)
End Function
Array.Sort(numbers, CompareDescending) ' 按降序排序
```
如果你需要对二维或多维数组排序,通常先转换成一维数组再操作,因为`Array.Sort`只接受一维数组。
VB.NET 字符串数组排序
在VB.NET中,对字符串数组进行排序通常使用`Array.Sort()`方法,该方法默认按照字典顺序(升序)排列元素。如果你想自定义排序规则,可以提供一个比较函数给`Sort()`方法。
基本的排序示例如下:
```vb.net
Dim strArray() As String = {"Apple", "Banana", "Orange", "Grape"}
Array.Sort(strArray)
' 打印排序后的数组
For Each s In strArray
Console.WriteLine(s)
Next
```
这将输出:
```
Apple
Banana
Grape
Orange
```
如果你想要降序排列,只需传递`Descending`参数即可:
```vb.net
Array.Sort(strArray, Function(x, y) y.CompareTo(x))
```
如果你有特定的排序需求,比如按字母长度排序,可以创建一个自定义的比较函数,接收两个字符串作为参数并返回一个值指示它们的相对顺序:
```vb.net
Function CompareByLength(x As String, y As String) As Integer
Return x.Length - y.Length
End Function
Array.Sort(strArray, CompareByLength)
```
阅读全文