Mega Code Archive

 
Categories / ASP.Net Tutorial / Collections
 

Searching for an equivalent object with Array BinarySearch (VB)

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb"  Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server">     <title>Untitled Page</title> </head> <body>     <form id="form1" runat="server">     <div>          </div>     </form> </body> </html> File: Default.aspx.vb Imports Microsoft.VisualBasic Public Class Person     Implements IComparable     Dim FirstName As String     Dim LastName As String     Public Sub New(ByVal First As String, ByVal Last As String)         FirstName = First         LastName = Last     End Sub     Public ReadOnly Property FullName() As String         Get             Return FirstName & " " & LastName         End Get     End Property     Public Function CompareTo(ByVal obj As Object) _         As Integer Implements IComparable.CompareTo         If Not TypeOf (obj) Is Person Then             Throw New ArgumentException("Object is not a Person!")         End If         Dim p2 As Person = CType(obj, Person)         Dim lastNameResult As Integer = Me.LastName.CompareTo(p2.LastName)         If lastNameResult = 0 Then             Dim firstNameResult As Integer = Me.FirstName.CompareTo(p2.FirstName)             Return firstNameResult         Else             Return lastNameResult         End If     End Function End Class Partial Class _Default     Inherits System.Web.UI.Page     Protected Sub Page_Load(ByVal sender As Object, _             ByVal e As System.EventArgs) Handles Me.Load         Dim scott As New Person("A", "B")         Dim bill As New Person("C", "D")         Dim srini As New Person("E", "F")         Dim people() As Person = {bill, scott, srini}         Dim indexOfC As Integer = Array.IndexOf(people, bill)         Response.Write("C is at " & indexOfC & "<BR/>")         Dim indexOfA As Integer = Array.IndexOf(people, scott)         Response.Write("A is at " & indexOfA & "<BR/>")         Dim scott2 As New Person("A", "B")         Dim indexOfA2 As Integer = Array.IndexOf(people, scott2)         Response.Write("A #2 is at " & indexOfA2 & "<BR/>")         Dim indexOfEquivalentA As Integer = Array.BinarySearch(people, scott2)         Response.Write("An Equivalent A is at " & indexOfEquivalentA & "<BR/>")     End Sub End Class