VB.Net Tutorial/Collections/Stack
Содержание
Convert and Copy Elements in a Stack to an Array
<source lang="vbnet">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</source>
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
<source lang="vbnet">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</source>
SyncS1: True S1: False
Stack
<source lang="vbnet">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</source>
0 1 2 3 f d s a
Stack: Push, Pop and Peek
<source lang="vbnet">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</source>
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