Store Structure into a Collection : Structure « Language Basics « VB.Net






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

           
         
  








Related examples in the same category

1.Structure Variable assignment
2.ToString Method for Structure data typeToString Method for Structure data type
3.Structure overrides ToString method
4.Structure with Constructor
5.Compare Structure and ClassCompare Structure and Class
6.Pass Structure into a FunctionPass Structure into a Function
7.Simple Structure DemoSimple Structure Demo
8.ValueType.Equals Method Indicates whether this instance and a specified object are equal.