Searching for an equivalent object with Array.BinarySearch (C#) : Array « Collections « ASP.NET Tutorial

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">

<html xmlns="" >
<head runat="server">
    <title>Untitled Page</title>
    <form id="form1" runat="server">

File: Default.aspx.cs

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

public partial class _Default : System.Web.UI.Page
    protected void Page_Load(object sender, EventArgs e)
        Person scott = new Person("A", "B");
        Person bill = new Person("C", "D");
        Person srini = new Person("E", "F");

        Person[] people = { bill, scott, srini };

        int indexOfC = Array.IndexOf(people, bill);
        Response.Write("C is at " + indexOfC + "<BR/>");

        int indexOfA = Array.IndexOf(people, scott);
        Response.Write("A is at " + indexOfA + "<BR/>");

        Person scott2 = new Person("A", "B");
        int indexOfA2 = Array.IndexOf(people, scott2);
        Response.Write("A #2 is at " + indexOfA2 + "<BR/>");

        int indexOfEquivalentA = Array.BinarySearch(people, scott2);
        Response.Write("An Equivalent A is at " + indexOfEquivalentA + "<BR/>");

public class Person : IComparable
    string FirstName;
    string LastName;

    public Person(string first, string last)
        FirstName = first;
        LastName = last;

    public string FullName
            return FirstName + " " + LastName;

    int IComparable.CompareTo(object obj)
        Person p2 = obj as Person;
        if (p2 == null) throw new ArgumentException("Object is not a Person!");

        int lastNameResult = this.LastName.CompareTo(p2.LastName);

        if (lastNameResult == 0)
            int firstNameResult = this.FirstName.CompareTo(p2.FirstName);
            return firstNameResult;
            return lastNameResult;


7.1.1.Define and use array in page (VB)
7.1.2.Define and use array in page (C#)
7.1.3.Looking for an object in an array by reference (C#)
7.1.4.Looking for an object in an array by reference (VB)
7.1.5.Searching for a object in an array by reference (C#)
7.1.6.Searching for a object in an array by reference (VB)
7.1.7.Searching for an equivalent object with Array.BinarySearch (C#)
7.1.8.Searching for an equivalent object with Array.BinarySearch (VB)
7.1.9.Sorting arrays of Person (C#)
7.1.10.Sorting arrays of Person (VB)
7.1.11.Array with custom objects
7.1.12.Array binding