VB.Net Tutorial/Collections/Stack

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

Convert and Copy Elements in a Stack to an Array

Option Strict On
 Imports System
 Imports System.Collections
 Class Tester
     Public Shared Sub DisplayValues(ByVal myCollection As IEnumerable)
         Dim o As Object
         For Each o In myCollection
             Console.WriteLine(o)
         Next o
     End Sub
     Shared Sub Main( )
         Dim intStack As New Stack( )
         Dim i As Integer
         For i = 1 To 4
             intStack.Push((i * 5))
         Next i
         Console.WriteLine("intStack values:")
         DisplayValues(intStack)
         Const arraySize As Integer = 10
         Dim testArray(arraySize) As Integer
         For i = 1 To arraySize - 1
             testArray(i) = i * 100
         Next i
         Console.WriteLine("Contents of the test array")
         DisplayValues(testArray)
         intStack.CopyTo(testArray, 3)
         Console.WriteLine("TestArray after copy:  ")
         DisplayValues(testArray)
         Dim myArray As Object( ) = intStack.ToArray( )
         Console.WriteLine("The new array:")
         DisplayValues(myArray)
     End Sub
 End Class
intStack values:
20
15
10
5
Contents of the test array
0
100
200
300
400
500
600
700
800
900
0
TestArray after copy:
0
100
200
20
15
10
5
700
800
900
0
The new array:
20
15
10
5

IsSynchronized

Imports System.Threading
Imports System.Collections
public class Test
   public Shared Sub Main
               Dim S1 As New Stack()
               Dim SyncS1 As Stack = Stack.Synchronized(S1)
               Console.WriteLine("SyncS1: " & SyncS1.IsSynchronized.ToString())
               Console.WriteLine("S1: " & S1.IsSynchronized.ToString())
   End Sub
End class
SyncS1: True
S1: False

Stack

Imports System.Collections
public class Test
   public Shared Sub Main
        
        Dim txt As String = "asdf"
        Dim letter_stack As New Stack
        For i As Integer = 0 To txt.Length - 1
            Console.WriteLine(i)
            letter_stack.Push(txt.Substring(i, 1))
        Next
        Do While letter_stack.Count > 0
            Console.WriteLine(DirectCast(letter_stack.Pop(), String))
        Loop
   End Sub
End class
0
1
2
3
f
d
s
a

Stack: Push, Pop and Peek

Option Strict On
 Imports System
 Imports System.Collections
 Class Tester
     Public Shared Sub DisplayValues(ByVal myCollection As IEnumerable)
         Dim o As Object
         For Each o In myCollection
             Console.WriteLine(o)
         Next o
     End Sub "DisplayValues
     Shared Sub Main( )
         Dim intStack As New Stack( )
         " populate the stack
         Dim i As Integer
         For i = 0 To 7
             intStack.Push((i * 5))
         Next i
         " Display the Stack.
         Console.WriteLine("intStack values:")
         DisplayValues(intStack)
         " Remove an element from the stack.
         Console.WriteLine("(Pop){0}", intStack.Pop( ))
         " Display the Stack.
         Console.WriteLine("intStack values:")
         DisplayValues(intStack)
         " Remove another element from the stack.
         Console.WriteLine("(Pop){0}", intStack.Pop( ))
         " Display the Stack.
         Console.WriteLine("intStack values:")
         DisplayValues(intStack)
         " View the first element in the
         " Stack but do not remove.
         Console.WriteLine("(Peek)   {0}", intStack.Peek( ))
         " Display the Stack.
         Console.WriteLine("intStack values:")
         DisplayValues(intStack)
     End Sub "Main
 End Class "Tester
intStack values:
35
30
25
20
15
10
5
0
(Pop)35
intStack values:
30
25
20
15
10
5
0
(Pop)30
intStack values:
25
20
15
10
5
0
(Peek)   25
intStack values:
25
20
15
10
5
0