Store Object in Most Recent Used Item List : List Yours « Data Structure « VB.Net

Home
VB.Net
1.2D
2.Application
3.Class
4.Data Structure
5.Data Types
6.Database ADO.net
7.Development
8.Event
9.File Directory
10.Generics
11.GUI
12.Language Basics
13.LINQ
14.Network Remote
15.Security
16.Thread
17.Windows Presentation Foundation
18.Windows System
19.XML
20.XML LINQ
VB.Net Tutorial
VB.Net by API
VB.Net » Data Structure » List YoursScreenshots 
Store Object in Most Recent Used Item List
Store Object in Most Recent Used Item List

Imports System
Imports System.Windows.Forms
Imports System.Collections.Generic
Imports System.ComponentModel

Public Class MainClass

   Shared Sub Main()
       Dim the_items As New MostRecentList(Of DataItem)(4)

       Dim new_data As New DataItem
       new_data.Text = "A"
       the_items.Add(new_data)       

       new_data = new DataItem
       new_data.Text = "B"
       the_items.Add(new_data)       
       
       For i As Integer = To the_items.Count - 1
            Console.WriteLine(the_items.Item(i).Text)
       Next i


   End Sub 

End Class



Public Class MostRecentList(Of ItemType As IComparable)
    ' Initialize MaxItems for the new list.
    Public Sub New(ByVal max_items As Integer)
        MaxItems = max_items
    End Sub

    ' The Item property.
    Private m_Items As New List(Of ItemType)
    <Description("The items."), _
     Category("Data")> _
    Public Property Item(ByVal index As IntegerAs ItemType
        Get
            Return m_Items(index)
        End Get
        Set(ByVal value As ItemType)
            m_Items(index= value
        End Set
    End Property

    ' The MaxItems property.
    Private m_MaxItems As Integer = 4
    <Description("The maximum number of items in the list."), _
     Category("Data")> _
    Public Property MaxItems() As Integer
        Get
            Return m_MaxItems
        End Get
        Set(ByVal value As Integer)
            m_MaxItems = value

            ' Resize appropriately.
            Do While m_Items.Count > m_MaxItems
                m_Items.RemoveAt(m_Items.Count - 1)
            Loop
        End Set
    End Property

    ' The current number of items.
    <Description("The current number of items."), _
     Category("Data")> _
    Public ReadOnly Property Count() As Integer
        Get
            Return m_Items.Count
        End Get
    End Property

    ' Add an item to the top of the list.
    Public Sub Add(ByVal value As ItemType)
        ' Remove the item if it is present.
        Remove(value)

        ' Add the item to the top of the list.
        m_Items.Insert(0, value)

        ' Make sure there are at most MaxItems items.
        If m_Items.Count > m_MaxItems Then m_Items.RemoveAt(m_Items.Count - 1)
    End Sub

    ' Remove an item.
    Public Sub Remove(ByVal value As ItemType)
        ' Find the item.
        For i As Integer = m_Items.Count - To Step -1
            If value.CompareTo(m_Items(i)) Then
                m_Items.RemoveAt(i)
            End If
        Next i
    End Sub

    ' Remove an item at a specific position.
    Public Sub RemoveAt(ByVal index As Integer)
        m_Items.RemoveAt(index)
    End Sub
End Class

Public Class DataItem
    Implements IComparable

    Public Text As String

    Public Function CompareTo(ByVal obj As ObjectAs Integer Implements System.IComparable.CompareTo
        Dim data_item As DataItem = DirectCast(obj, DataItem)
        Return String.Compare(Me.Text, data_item.Text)
    End Function
End Class

           
       
Related examples in the same category
1.Your own List Data structureYour own List Data structure
2.Add Item to Most Recent Used Item ListAdd Item to Most Recent Used Item List
3.Remove Item from Most Recent Used Item ListRemove Item from Most Recent Used Item List
4.Change the Max Item Count Allowed Property in Most Recent Used Item ListChange the Max Item Count Allowed Property in Most Recent Used Item List
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.