比如。在512个节点内查询,符合条件的节点刚好在最后一个,如果用递归的方法遍历查找,需要比对512次才能找到结果。如果用对象数组排序后查询,只需比对9次,这两种方法效率差的非常大。所以,我才会使用对象数组。
我在网上搜了一下,好像Array.Sort方法中,需要 IComparer 接口。
我自己写了一个比较类
源码:
Public Class CompareA '比较类
Implements IComparer
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements System.Collections.IComparer.Compare
If x.Text > y.Text Then
Return 1
ElseIf x.Text = y.Text Then
Return 0
Else
Return -1
End If
End Function
在使用中
Dim A1 As New CompareA
Array.Sort(Arr, A1)
运行后出错。在CompareA类中,x 有数组第一个元素的值,y 为什么是Nothing ??????