Use IComparer to sort by different properties : CompareTo « Data Structure « VB.Net

VB.Net
1. 2D
2. Application
3. Class
4. Data Structure
5. Database ADO.net
6. Development
7. Event
8. File Directory
9. Generics
10. GUI
11. Language Basics
12. Network Remote
13. Thread
14. Windows System
15. XML
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
VB.Net » Data Structure » CompareToScreenshots 
Use IComparer to sort by different properties
Use IComparer to sort by different properties

Imports System
Imports System.Collections


Public Class MainClass

  Shared Sub Main()
    Dim e1 As New Employee("E1"50000)
    Dim e2 As New Employee("E2"60000)
    Dim e3 As New Employee("E3"20000)
    Dim e4 As New Employee("E4"1)
    Dim theEmployees() As Employee = {e1, e2, e3, e4}
    
    Array.Sort(theEmployees)
    
    Console.WriteLine("Sort by Salary")
    
    Dim SortingByName As SortByName = New SortByName()

    Dim aEmployee As Employee


    For Each aEmployee In theEmployees
      Console.WriteLine(aEmployee.TheName & " has yearly salary $" & FormatNumber(aEmployee.Salary))
    Next

    Console.WriteLine("Sort by Name")

    Array.Sort(theEmployees, SortingByName)
    
    
    For Each aEmployee In theEmployees
      Console.WriteLine(aEmployee.TheName & " has yearly salary $" & FormatNumber(aEmployee.Salary))
    Next
  End Sub
End Class


Public Class SortByName
  Implements IComparer
  Public Function CompareTo(ByVal firstEmp As Object, ByVal _
  secondEmp As ObjectAs Integer Implements IComparer.Compare
    Dim temp1 As Employee = CType(firstEmp, Employee)
    Dim temp2 As Employee = CType(secondEmp, Employee)
    Return String.Compare(temp1.TheName, temp2.TheName)
  End Function
End Class
Public Class Employee
  Implements IComparable
  Private m_Name As String
  Private m_Salary As Decimal

  Public Sub New(ByVal theName As String, ByVal curSalary As Decimal)
    m_Name = theName
    m_Salary = curSalary
  End Sub
  Public Function CompareTo(ByVal AnEmployee As ObjectAs Integer _
  Implements IComparable.CompareTo
    If CType(AnEmployee, Employee).Salary < Me.Salary Then
      Return -1
    ElseIf CType(AnEmployee, Employee).Salary = Me.Salary Then
      Return 0
    ElseIf CType(AnEmployee, Employee).Salary > Me.Salary Then
      Return 1
    End If
  End Function
  Public ReadOnly Property TheName() As String
    Get
      Return m_Name
    End Get
  End Property
  Public ReadOnly Property Salary() As Decimal
    Get
      Return MyClass.m_Salary
    End Get
  End Property
End Class

           
       
Related examples in the same category
1. Define Comparable Object and Sort themDefine Comparable Object and Sort them
w__w___w._j__a__v_a___2s._c_o__m___ | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.