Mega Code Archive

 
Categories / VB.Net / Language Basics
 

Store Structure into a Collection

Imports System Imports System.Data Imports System.Collections Imports System.Windows.Forms Public Class MainClass     Shared Sub Main()         Dim customers As CustomerCollection = New CustomerCollection()         customers.Clear()                  Dim newCustomer As Customer         newCustomer.FirstName = "firstName"         newCustomer.LastName = "lastName"         newCustomer.Email = "email"         ' add it to the list...         customers.Add(newCustomer)              End Sub End Class Public Structure Customer     Public FirstName As String     Public LastName As String     Public Email As String     Public ReadOnly Property Name() As String         Get             Return FirstName & " " & LastName         End Get     End Property     Public Overrides Function ToString() As String         Return Name & " (" & Email & ")"     End Function     Public Function IsEmpty() As Boolean         If FirstName = "" Then             Return True         Else             Return False         End If     End Function End Structure Public Class CustomerCollection     Inherits System.Collections.CollectionBase     Private _emailHashtable As New Hashtable()     Public Sub Add(ByVal newCustomer As Customer)         Me.List.Add(newCustomer)         Dim useEmail As String         useEmail = newCustomer.Email.ToLower         EmailHashtable.Add(useEmail, newCustomer)     End Sub     Public Sub Remove(ByVal removeCustomer As Customer)         Me.List.Remove(removeCustomer)         Dim useEmail As String         useEmail = removeCustomer.Email.ToLower()         EmailHashtable.Remove(useEmail)     End Sub     Default Public Property Item(ByVal index As Integer) As Customer         Get             Return Me.List.Item(index)         End Get         Set(ByVal Value As Customer)             Me.List.Item(index) = Value         End Set     End Property     Public ReadOnly Property EmailHashtable() As Hashtable         Get             Return _emailHashtable         End Get     End Property     Default Public ReadOnly Property Item(ByVal email As String) _             As Customer         Get             email = email.ToLower()             Return EmailHashtable.Item(email)         End Get     End Property     Public Shadows Sub Clear()         MyBase.Clear()         EmailHashtable.Clear()     End Sub     Public Shadows Sub RemoveAt(ByVal index As Integer)         Remove(Item(index))     End Sub End Class