Mega Code Archive

 
Categories / ASP.Net Tutorial / Collections
 

Using a custom strongly typed PersonList (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 System Imports System.Collections Imports Microsoft.VisualBasic Imports System.Collections Public Class PersonList     Implements System.Collections.IEnumerable     Private innerList As ArrayList = New ArrayList()     Public Sub Add(ByVal aPerson As Person)         innerList.Add(aPerson)     End Sub     Public Sub Remove(ByVal aPerson As Person)         innerList.Remove(aPerson)     End Sub     Public ReadOnly Property Count() As Integer         Get             Return innerList.Count         End Get     End Property     'Get/set element at given index     Default Public Property Item(ByVal index As Integer) As Person         Get             Return CType(innerList(index), Person)         End Get         Set(ByVal Value As Person)             innerList(index) = Value         End Set     End Property     Public Function GetEnumerator() As IEnumerator _             Implements IEnumerable.GetEnumerator         Return innerList.GetEnumerator()     End Function End Class 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 New PersonList()         people.Add(scott)         people.Add(bill)         people.Add(srini)         For Each p As Person In people             Response.Write(p.FullName & "<BR/>")         Next         For i As Integer = 0 To people.Count - 1             Response.Write(people(i).FullName & "<BR/>")         Next     End Sub End Class