VB.Net Tutorial/Collections/IEnumerator
Содержание
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