VB.Net Tutorial/Collections/IComparer — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
Admin (обсуждение | вклад) м (1 версия) |
(нет различий)
|
Текущая версия на 12:53, 26 мая 2010
Implements IComparer
Imports System.Collections
public class Test
public Shared Sub Main
Dim emps(4) As Employee
emps(0) = New Employee("R", "S")
emps(1) = New Employee("S", "A")
emps(2) = New Employee("T", "P")
emps(3) = New Employee("H", "S")
emps(4) = New Employee("E", "C")
Dim emp_comparer As New EmployeeComparer
Array.Sort(emps, emp_comparer)
For i As Integer = 0 To emps.GetUpperBound(0)
Console.WriteLine(emps(i).ToString())
Next i
End Sub
End class
Public Class Employee
Public FirstName As String
Public LastName As String
Public Sub New(ByVal first_name As String, ByVal last_name As String)
FirstName = first_name
LastName = last_name
End Sub
Public Overrides Function ToString() As String
Return LastName & ", " & FirstName
End Function
End Class
Public Class EmployeeComparer
Implements IComparer
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
Implements System.Collections.IComparer.rupare
Dim mgr1 As Employee = DirectCast(x, Employee)
Dim mgr2 As Employee = DirectCast(y, Employee)
Return String.rupare(mgr1.ToString, mgr2.ToString)
End Function
End Class
A, S C, E P, T S, H S, R
Use custom Comparer to compare objects
Imports System.Collections
public class Test
public Shared Sub Main
Dim emps(4) As Employee
emps(0) = New Employee("R", "S")
emps(1) = New Employee("S", "A")
emps(2) = New Employee("T", "P")
emps(3) = New Employee("H", "S")
emps(4) = New Employee("E", "C")
Dim emp_comparer As New EmployeeComparer
Array.Sort(emps, emp_comparer)
For i As Integer = 0 To emps.GetUpperBound(0)
Console.WriteLine(emps(i).ToString())
Next i
End Sub
End class
Public Class Employee
Public FirstName As String
Public LastName As String
Public Sub New(ByVal first_name As String, ByVal last_name As String)
FirstName = first_name
LastName = last_name
End Sub
Public Overrides Function ToString() As String
Return LastName & ", " & FirstName
End Function
End Class
Public Class EmployeeComparer
Implements IComparer
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
Implements System.Collections.IComparer.rupare
Dim mgr1 As Employee = DirectCast(x, Employee)
Dim mgr2 As Employee = DirectCast(y, Employee)
Return String.rupare(mgr1.ToString, mgr2.ToString)
End Function
End Class
A, S C, E P, T S, H S, R