<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FData_Structure%2FList_Yours</id>
		<title>VB.Net/Data Structure/List Yours - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.vbex.ru/index.php?action=history&amp;feed=atom&amp;title=VB.Net%2FData_Structure%2FList_Yours"/>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Data_Structure/List_Yours&amp;action=history"/>
		<updated>2026-04-06T01:37:55Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/Data_Structure/List_Yours&amp;diff=988&amp;oldid=prev</id>
		<title> в 16:40, 26 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Data_Structure/List_Yours&amp;diff=988&amp;oldid=prev"/>
				<updated>2010-05-26T16:40:06Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 16:40, 26 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.vbex.ru/index.php?title=VB.Net/Data_Structure/List_Yours&amp;diff=989&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.vbex.ru/index.php?title=VB.Net/Data_Structure/List_Yours&amp;diff=989&amp;oldid=prev"/>
				<updated>2010-05-26T12:45:40Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Add Item to Most Recent Used Item List==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Collections.Generic&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
       Dim the_items As New MostRecentList(Of String)(4)&lt;br /&gt;
       the_items.Add(&amp;quot;A&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;B&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;C&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;D&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;D&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;B&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;F&amp;quot;)&lt;br /&gt;
       For i As Integer = 0 To the_items.Count - 1&lt;br /&gt;
            Console.WriteLine(the_items.Item(i))&lt;br /&gt;
       Next i&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class MostRecentList(Of ItemType)&lt;br /&gt;
    Public Sub New(ByVal max_items As Integer)&lt;br /&gt;
        MaxItems = max_items&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private m_Items As New List(Of ItemType)&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property Item(ByVal index As Integer) As ItemType&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items(index)&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As ItemType)&lt;br /&gt;
            m_Items(index) = value&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    Private m_MaxItems As Integer = 4&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The maximum number of items in the list.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property MaxItems() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_MaxItems&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As Integer)&lt;br /&gt;
            m_MaxItems = value&lt;br /&gt;
            Do While m_Items.Count &amp;gt; m_MaxItems&lt;br /&gt;
                m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
            Loop&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The current number of items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public ReadOnly Property Count() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items.Count&lt;br /&gt;
        End Get&lt;br /&gt;
    End Property&lt;br /&gt;
    Public Sub Add(ByVal value As ItemType)&lt;br /&gt;
        If m_Items.Contains(value) Then m_Items.Remove(value)&lt;br /&gt;
        m_Items.Insert(0, value)&lt;br /&gt;
        If m_Items.Count &amp;gt; m_MaxItems Then m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub Remove(ByVal value As ItemType)&lt;br /&gt;
        m_Items.Remove(value)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub RemoveAt(ByVal index As Integer)&lt;br /&gt;
        m_Items.RemoveAt(index)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Change the Max Item Count Allowed Property in Most Recent Used Item List==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Collections.Generic&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
       Dim the_items As New MostRecentList(Of String)(4)&lt;br /&gt;
       the_items.Add(&amp;quot;A&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;B&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;C&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;D&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;D&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;B&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;F&amp;quot;)&lt;br /&gt;
       For i As Integer = 0 To the_items.Count - 1&lt;br /&gt;
            Console.WriteLine(the_items.Item(i))&lt;br /&gt;
       Next i&lt;br /&gt;
       the_items.MaxItems = 2&lt;br /&gt;
       Console.WriteLine()&lt;br /&gt;
       For i As Integer = 0 To the_items.Count - 1&lt;br /&gt;
            Console.WriteLine(the_items.Item(i))&lt;br /&gt;
       Next i&lt;br /&gt;
&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class MostRecentList(Of ItemType)&lt;br /&gt;
    Public Sub New(ByVal max_items As Integer)&lt;br /&gt;
        MaxItems = max_items&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private m_Items As New List(Of ItemType)&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property Item(ByVal index As Integer) As ItemType&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items(index)&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As ItemType)&lt;br /&gt;
            m_Items(index) = value&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    Private m_MaxItems As Integer = 4&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The maximum number of items in the list.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property MaxItems() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_MaxItems&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As Integer)&lt;br /&gt;
            m_MaxItems = value&lt;br /&gt;
            Do While m_Items.Count &amp;gt; m_MaxItems&lt;br /&gt;
                m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
            Loop&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The current number of items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public ReadOnly Property Count() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items.Count&lt;br /&gt;
        End Get&lt;br /&gt;
    End Property&lt;br /&gt;
    Public Sub Add(ByVal value As ItemType)&lt;br /&gt;
        If m_Items.Contains(value) Then m_Items.Remove(value)&lt;br /&gt;
        m_Items.Insert(0, value)&lt;br /&gt;
        If m_Items.Count &amp;gt; m_MaxItems Then m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub Remove(ByVal value As ItemType)&lt;br /&gt;
        m_Items.Remove(value)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub RemoveAt(ByVal index As Integer)&lt;br /&gt;
        m_Items.RemoveAt(index)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Remove Item from Most Recent Used Item List==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Collections.Generic&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
       Dim the_items As New MostRecentList(Of String)(4)&lt;br /&gt;
       the_items.Add(&amp;quot;A&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;B&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;C&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;D&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;D&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;B&amp;quot;)&lt;br /&gt;
       the_items.Add(&amp;quot;F&amp;quot;)&lt;br /&gt;
       For i As Integer = 0 To the_items.Count - 1&lt;br /&gt;
            Console.WriteLine(the_items.Item(i))&lt;br /&gt;
       Next i&lt;br /&gt;
       the_items.Remove(&amp;quot;F&amp;quot;)&lt;br /&gt;
       Console.WriteLine()&lt;br /&gt;
       For i As Integer = 0 To the_items.Count - 1&lt;br /&gt;
            Console.WriteLine(the_items.Item(i))&lt;br /&gt;
       Next i&lt;br /&gt;
&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class MostRecentList(Of ItemType)&lt;br /&gt;
    Public Sub New(ByVal max_items As Integer)&lt;br /&gt;
        MaxItems = max_items&lt;br /&gt;
    End Sub&lt;br /&gt;
    Private m_Items As New List(Of ItemType)&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property Item(ByVal index As Integer) As ItemType&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items(index)&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As ItemType)&lt;br /&gt;
            m_Items(index) = value&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    Private m_MaxItems As Integer = 4&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The maximum number of items in the list.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property MaxItems() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_MaxItems&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As Integer)&lt;br /&gt;
            m_MaxItems = value&lt;br /&gt;
            Do While m_Items.Count &amp;gt; m_MaxItems&lt;br /&gt;
                m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
            Loop&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The current number of items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public ReadOnly Property Count() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items.Count&lt;br /&gt;
        End Get&lt;br /&gt;
    End Property&lt;br /&gt;
    Public Sub Add(ByVal value As ItemType)&lt;br /&gt;
        If m_Items.Contains(value) Then m_Items.Remove(value)&lt;br /&gt;
        m_Items.Insert(0, value)&lt;br /&gt;
        If m_Items.Count &amp;gt; m_MaxItems Then m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub Remove(ByVal value As ItemType)&lt;br /&gt;
        m_Items.Remove(value)&lt;br /&gt;
    End Sub&lt;br /&gt;
    Public Sub RemoveAt(ByVal index As Integer)&lt;br /&gt;
        m_Items.RemoveAt(index)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Store Object in Most Recent Used Item List==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Imports System.Windows.Forms&lt;br /&gt;
Imports System.Collections.Generic&lt;br /&gt;
Imports System.ruponentModel&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
   Shared Sub Main()&lt;br /&gt;
       Dim the_items As New MostRecentList(Of DataItem)(4)&lt;br /&gt;
       Dim new_data As New DataItem&lt;br /&gt;
       new_data.Text = &amp;quot;A&amp;quot;&lt;br /&gt;
       the_items.Add(new_data)       &lt;br /&gt;
       new_data = new DataItem&lt;br /&gt;
       new_data.Text = &amp;quot;B&amp;quot;&lt;br /&gt;
       the_items.Add(new_data)       &lt;br /&gt;
       &lt;br /&gt;
       For i As Integer = 0 To the_items.Count - 1&lt;br /&gt;
            Console.WriteLine(the_items.Item(i).Text)&lt;br /&gt;
       Next i&lt;br /&gt;
&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class MostRecentList(Of ItemType As IComparable)&lt;br /&gt;
    &amp;quot; Initialize MaxItems for the new list.&lt;br /&gt;
    Public Sub New(ByVal max_items As Integer)&lt;br /&gt;
        MaxItems = max_items&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; The Item property.&lt;br /&gt;
    Private m_Items As New List(Of ItemType)&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property Item(ByVal index As Integer) As ItemType&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items(index)&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As ItemType)&lt;br /&gt;
            m_Items(index) = value&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;quot; The MaxItems property.&lt;br /&gt;
    Private m_MaxItems As Integer = 4&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The maximum number of items in the list.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public Property MaxItems() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_MaxItems&lt;br /&gt;
        End Get&lt;br /&gt;
        Set(ByVal value As Integer)&lt;br /&gt;
            m_MaxItems = value&lt;br /&gt;
            &amp;quot; Resize appropriately.&lt;br /&gt;
            Do While m_Items.Count &amp;gt; m_MaxItems&lt;br /&gt;
                m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
            Loop&lt;br /&gt;
        End Set&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;quot; The current number of items.&lt;br /&gt;
    &amp;lt;Description(&amp;quot;The current number of items.&amp;quot;), _&lt;br /&gt;
     Category(&amp;quot;Data&amp;quot;)&amp;gt; _&lt;br /&gt;
    Public ReadOnly Property Count() As Integer&lt;br /&gt;
        Get&lt;br /&gt;
            Return m_Items.Count&lt;br /&gt;
        End Get&lt;br /&gt;
    End Property&lt;br /&gt;
    &amp;quot; Add an item to the top of the list.&lt;br /&gt;
    Public Sub Add(ByVal value As ItemType)&lt;br /&gt;
        &amp;quot; Remove the item if it is present.&lt;br /&gt;
        Remove(value)&lt;br /&gt;
        &amp;quot; Add the item to the top of the list.&lt;br /&gt;
        m_Items.Insert(0, value)&lt;br /&gt;
        &amp;quot; Make sure there are at most MaxItems items.&lt;br /&gt;
        If m_Items.Count &amp;gt; m_MaxItems Then m_Items.RemoveAt(m_Items.Count - 1)&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Remove an item.&lt;br /&gt;
    Public Sub Remove(ByVal value As ItemType)&lt;br /&gt;
        &amp;quot; Find the item.&lt;br /&gt;
        For i As Integer = m_Items.Count - 1 To 0 Step -1&lt;br /&gt;
            If value.rupareTo(m_Items(i)) = 0 Then&lt;br /&gt;
                m_Items.RemoveAt(i)&lt;br /&gt;
            End If&lt;br /&gt;
        Next i&lt;br /&gt;
    End Sub&lt;br /&gt;
    &amp;quot; Remove an item at a specific position.&lt;br /&gt;
    Public Sub RemoveAt(ByVal index As Integer)&lt;br /&gt;
        m_Items.RemoveAt(index)&lt;br /&gt;
    End Sub&lt;br /&gt;
End Class&lt;br /&gt;
Public Class DataItem&lt;br /&gt;
    Implements IComparable&lt;br /&gt;
    Public Text As String&lt;br /&gt;
    Public Function CompareTo(ByVal obj As Object) As Integer Implements System.IComparable.rupareTo&lt;br /&gt;
        Dim data_item As DataItem = DirectCast(obj, DataItem)&lt;br /&gt;
        Return String.rupare(Me.Text, data_item.Text)&lt;br /&gt;
    End Function&lt;br /&gt;
End Class&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Your own List Data structure==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;vbnet&amp;quot;&amp;gt;&lt;br /&gt;
Imports System&lt;br /&gt;
Public Class MainClass&lt;br /&gt;
  Public Shared Sub Main()&lt;br /&gt;
      Dim list As List = New List() &lt;br /&gt;
      Dim aBoolean As Boolean = True&lt;br /&gt;
      Dim aCharacter As Char = &amp;quot;$&amp;quot;c&lt;br /&gt;
      Dim anInteger As Integer = 34&lt;br /&gt;
      Dim aString As String = &amp;quot;www.vbex.ru&amp;quot;&lt;br /&gt;
      list.InsertAtFront(aBoolean) &lt;br /&gt;
      Console.WriteLine(list)&lt;br /&gt;
      list.InsertAtFront(aCharacter)&lt;br /&gt;
      Console.WriteLine(list)&lt;br /&gt;
      list.InsertAtBack(anInteger) &lt;br /&gt;
      Console.WriteLine(list)&lt;br /&gt;
      list.InsertAtBack(aString) &lt;br /&gt;
      Console.WriteLine(list)&lt;br /&gt;
      Dim removedObject As Object&lt;br /&gt;
      Try&lt;br /&gt;
         removedObject = list.RemoveFromFront()&lt;br /&gt;
         Console.WriteLine(Convert.ToString(removedObject) &amp;amp; &amp;quot; removed&amp;quot;)&lt;br /&gt;
         Console.WriteLine(list)&lt;br /&gt;
         removedObject = list.RemoveFromFront()&lt;br /&gt;
         Console.WriteLine(Convert.ToString(removedObject) &amp;amp; _&lt;br /&gt;
            &amp;quot; removed&amp;quot;)&lt;br /&gt;
         Console.WriteLine(list)&lt;br /&gt;
         removedObject = list.RemoveFromBack()&lt;br /&gt;
         Console.WriteLine(Convert.ToString(removedObject) &amp;amp; _&lt;br /&gt;
            &amp;quot; removed&amp;quot;)&lt;br /&gt;
         Console.WriteLine(list)&lt;br /&gt;
         removedObject = list.RemoveFromBack()&lt;br /&gt;
         Console.WriteLine(Convert.ToString(removedObject) &amp;amp; _&lt;br /&gt;
            &amp;quot; removed&amp;quot;)&lt;br /&gt;
         Console.WriteLine(list)&lt;br /&gt;
      Catch emptyListException As EmptyListException&lt;br /&gt;
         Console.Error.WriteLine(vbCrLf &amp;amp; _&lt;br /&gt;
            Convert.ToString(emptyListException))&lt;br /&gt;
      End Try&lt;br /&gt;
  End Sub&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class List&lt;br /&gt;
   Private firstNode As ListNode&lt;br /&gt;
   Private lastNode As ListNode&lt;br /&gt;
   Private name As String&lt;br /&gt;
   Public Sub New(ByVal listName As String)&lt;br /&gt;
      name = listName&lt;br /&gt;
      firstNode = Nothing&lt;br /&gt;
      lastNode = Nothing&lt;br /&gt;
   End Sub&lt;br /&gt;
   Public Sub New()&lt;br /&gt;
      MyClass.New(&amp;quot;list&amp;quot;)&lt;br /&gt;
   End Sub &lt;br /&gt;
   Public Sub InsertAtFront(ByVal insertItem As Object)&lt;br /&gt;
      SyncLock (Me)&lt;br /&gt;
         If IsEmpty() Then&lt;br /&gt;
            lastNode = New ListNode(insertItem)&lt;br /&gt;
            firstNode = lastNode&lt;br /&gt;
         Else &lt;br /&gt;
            firstNode = New ListNode(insertItem, firstNode)&lt;br /&gt;
         End If&lt;br /&gt;
      End SyncLock&lt;br /&gt;
   End Sub&lt;br /&gt;
   Public Sub InsertAtBack(ByVal insertItem As Object)&lt;br /&gt;
      SyncLock (Me)&lt;br /&gt;
         If IsEmpty() Then&lt;br /&gt;
            lastNode = New ListNode(insertItem)&lt;br /&gt;
            firstNode = lastNode&lt;br /&gt;
         Else &lt;br /&gt;
            lastNode.NextNode = New ListNode(insertItem)&lt;br /&gt;
            lastNode = lastNode.NextNode&lt;br /&gt;
         End If&lt;br /&gt;
      End SyncLock&lt;br /&gt;
   End Sub&lt;br /&gt;
   Public Function RemoveFromFront() As Object&lt;br /&gt;
      SyncLock (Me)&lt;br /&gt;
         Dim removeItem As Object = Nothing&lt;br /&gt;
         If IsEmpty() Then&lt;br /&gt;
            Throw New EmptyListException(name)&lt;br /&gt;
         End If&lt;br /&gt;
         removeItem = firstNode.Data &lt;br /&gt;
         If firstNode Is lastNode Then&lt;br /&gt;
            firstNode = Nothing&lt;br /&gt;
            lastNode = Nothing&lt;br /&gt;
         Else&lt;br /&gt;
            firstNode = firstNode.NextNode&lt;br /&gt;
         End If&lt;br /&gt;
         &lt;br /&gt;
         Return removeItem&lt;br /&gt;
      End SyncLock&lt;br /&gt;
   End Function&lt;br /&gt;
   Public Function RemoveFromBack() As Object&lt;br /&gt;
      SyncLock (Me)&lt;br /&gt;
         Dim removeItem As Object = Nothing&lt;br /&gt;
         If IsEmpty() Then&lt;br /&gt;
            Throw New EmptyListException(name)&lt;br /&gt;
         End If&lt;br /&gt;
         removeItem = lastNode.Data&lt;br /&gt;
         If firstNode Is lastNode Then&lt;br /&gt;
            lastNode = Nothing&lt;br /&gt;
            firstNode = lastNode&lt;br /&gt;
         Else&lt;br /&gt;
            Dim current As ListNode = firstNode&lt;br /&gt;
            While (Not (current.NextNode Is lastNode))&lt;br /&gt;
               current = current.NextNode&lt;br /&gt;
            End While&lt;br /&gt;
            lastNode = current&lt;br /&gt;
            current.NextNode = Nothing&lt;br /&gt;
         End If&lt;br /&gt;
         Return removeItem&lt;br /&gt;
      End SyncLock&lt;br /&gt;
   End Function&lt;br /&gt;
   Public Function IsEmpty() As Boolean&lt;br /&gt;
      SyncLock (Me)&lt;br /&gt;
         If firstNode Is Nothing Then&lt;br /&gt;
            Return True&lt;br /&gt;
         Else&lt;br /&gt;
            Return False&lt;br /&gt;
         End If&lt;br /&gt;
      End SyncLock&lt;br /&gt;
   End Function&lt;br /&gt;
   Public Overrides Function ToString() As String&lt;br /&gt;
      Dim str As String = New String(&amp;quot;&amp;quot;)&lt;br /&gt;
      SyncLock (Me)&lt;br /&gt;
         If IsEmpty() Then&lt;br /&gt;
            Return &amp;quot;Empty &amp;quot; &amp;amp; name&lt;br /&gt;
         End If&lt;br /&gt;
         str = &amp;quot;The &amp;quot; &amp;amp; name &amp;amp; &amp;quot; is: &amp;quot;&lt;br /&gt;
         Dim current As ListNode = firstNode&lt;br /&gt;
         While Not current Is Nothing&lt;br /&gt;
            str += current.Data &amp;amp; &amp;quot; &amp;quot;&lt;br /&gt;
            current = current.NextNode&lt;br /&gt;
         End While&lt;br /&gt;
         &lt;br /&gt;
         Return str&lt;br /&gt;
      &lt;br /&gt;
      End SyncLock&lt;br /&gt;
   End Function&lt;br /&gt;
End Class &lt;br /&gt;
&lt;br /&gt;
Public Class ListNode&lt;br /&gt;
   Private mData As Object&lt;br /&gt;
   Private mNextNode As ListNode&lt;br /&gt;
   Public Sub New(ByVal dataValue As Object)&lt;br /&gt;
      MyClass.New(dataValue, Nothing)&lt;br /&gt;
   End Sub &lt;br /&gt;
   Public Sub New(ByVal dataValue As Object, _&lt;br /&gt;
      ByVal nextNodeValue As Object)&lt;br /&gt;
      mData = dataValue&lt;br /&gt;
      mNextNode = nextNodeValue&lt;br /&gt;
   End Sub &lt;br /&gt;
   Public ReadOnly Property Data() As Object&lt;br /&gt;
      Get&lt;br /&gt;
         Return mData&lt;br /&gt;
      End Get&lt;br /&gt;
   End Property&lt;br /&gt;
   Public Property NextNode() As ListNode&lt;br /&gt;
      Get&lt;br /&gt;
         Return mNextNode&lt;br /&gt;
      End Get&lt;br /&gt;
      Set(ByVal value As ListNode)&lt;br /&gt;
         mNextNode = value&lt;br /&gt;
      End Set&lt;br /&gt;
   End Property&lt;br /&gt;
End Class&lt;br /&gt;
&lt;br /&gt;
Public Class EmptyListException&lt;br /&gt;
   Inherits ApplicationException&lt;br /&gt;
   Public Sub New(ByVal name As String)&lt;br /&gt;
      MyBase.New(&amp;quot;The &amp;quot; &amp;amp; name &amp;amp; &amp;quot; is empty&amp;quot;)&lt;br /&gt;
   End Sub &lt;br /&gt;
End Class &lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>