VB.Net Tutorial/Collections/IEnumerator

Материал из VB Эксперт
Перейти к: навигация, поиск

Enumerator Reset

<source lang="vbnet">Imports System.Collections

public class Test

  public Shared Sub Main
       Dim StringArray() As String = {"This", "is", "a", "test"}
       
       Array.Reverse(StringArray)
           
       Dim E As IEnumerator = StringArray.GetEnumerator()
   
       While (E.MoveNext())
         Console.WriteLine(E.Current())
       End While
   
       E.Reset()
   
       While (E.MoveNext())
         Console.WriteLine(E.Current())
       End While
  End Sub

End class</source>

test
a
is
This
test
a
is
This

Get Enumerator from Collection for custom object

<source lang="vbnet">Imports System.Collections public class Test

  public Shared Sub Main
       Dim employees As New Collection
       employees.Add(New Employee("A"))
       employees.Add(New Manager("B"))
       employees.Add(New Employee("C"))
       Dim emp As Employee
       Dim employee_enumerator As IEnumerator
       employee_enumerator = employees.GetEnumerator()
       Do While (employee_enumerator.MoveNext)
           emp = CType(employee_enumerator.Current, Employee)
           Console.WriteLine(emp.Name)
       Loop
  End Sub

End class Public Class Employee

   Public Name As String
   Public Sub New(ByVal new_name As String)
       Name = new_name
   End Sub
   Public Overridable Function IsManager() As Boolean
       Return False
   End Function

End Class Public Class Customer

   Public Name As String
   Public Sub New(ByVal new_name As String)
       Name = new_name
   End Sub

End Class Public Class Manager

   Inherits Employee
   Public Sub New(ByVal new_name As String)
       MyBase.new(new_name)
   End Sub
   Public Overrides Function IsManager() As Boolean
       Return True
   End Function

End Class</source>

A
B
C

Iterator

<source lang="vbnet">Imports System.Collections

public class Test

  public Shared Sub Main
       Dim m_employees As New Collection
       m_employees.Add(New employee("A", "F", "F"))
       m_employees.Add(New employee("B", "E", "H"))
       m_employees.Add(New employee("C", "D", "I"))
       Dim emp As employee
       Dim employee_enumerator As IEnumerator
       employee_enumerator = m_employees.GetEnumerator()
       Do While (employee_enumerator.MoveNext)
           emp = CType(employee_enumerator.Current, Employee)
           If emp.FirstName = "Oingo" Then Continue Do
           Console.WriteLine(emp.Title & " " & emp.FirstName & " " & emp.LastName)
       Loop
  End Sub

End class

Public Class Employee

   Public FirstName As String
   Public LastName As String
   Public Title As String
   Public Sub New(ByVal first_name As String, ByVal last_name As String, ByVal new_title As String

)

       FirstName = first_name
       LastName = last_name
       Title = new_title
   End Sub

End Class</source>

F A F
H B E
I C D

Iterator with While End

<source lang="vbnet">Imports System.Collections

public class Test

  public Shared Sub Main
       Dim m_employees As New Collection
       m_employees.Add(New employee("A", "F", "F"))
       m_employees.Add(New employee("B", "E", "H"))
       m_employees.Add(New employee("C", "D", "I"))
       Dim emp2 As Employee
       Dim employee_enumerator2 As IEnumerator
       employee_enumerator2 = m_employees.GetEnumerator()
       While (employee_enumerator2.MoveNext)
           emp2 = CType(employee_enumerator2.Current, Employee)
           If emp2.FirstName = "A" Then Continue While
           Console.WriteLine(emp2.Title & " " & emp2.FirstName & " " & emp2.LastName)
       End While
  End Sub

End class

Public Class Employee

   Public FirstName As String
   Public LastName As String
   Public Title As String
   Public Sub New(ByVal first_name As String, ByVal last_name As String, ByVal new_title As String

)

       FirstName = first_name
       LastName = last_name
       Title = new_title
   End Sub

End Class</source>

H B E
I C D

Loop through an array using the Enumerator

<source lang="vbnet">Imports System.Collections public class Test

  public Shared Sub Main
       Dim StringArray() As String = {"This", "is", "a", "test"}
       Dim E As IEnumerator = StringArray.GetEnumerator()
   
       While (E.MoveNext())
         Console.WriteLine(E.Current())
       End While
   
       Console.WriteLine(Array.IndexOf(StringArray, "test"))
  End Sub

End class</source>

This
is
a
test
3