VB.Net Tutorial/Collections/Array Sort Reverse
Содержание
Array.BinarySearch
<source lang="vbnet">Imports System.Collections Public Class Tester
Shared Sub Main() Dim integerValues As Integer() = {1, 2, 3, 4, 5, 6} Dim integerElement As Integer For Each integerElement In integerValues Console.WriteLine(integerElement) Next Dim result As Integer = Array.BinarySearch(integerValues, 5) If result >= 0 Then Console.WriteLine("5 found at element " & result &" in integerValues") Else Console.WriteLine("5 not found" & " in integerValues") End If End Sub
End Class</source>
1 2 3 4 5 6 5 found at element 4 in integerValues
Array Reverse and Sort
<source lang="vbnet">Option Strict On
Imports System Class Tester Public Shared Sub DisplayArray(ByVal theArray( ) As Object) Dim obj As Object For Each obj In theArray Console.WriteLine("Value: {0}", obj) Next obj Console.WriteLine(ControlChars.Lf) End Sub Public Shared Sub Main( ) Dim myArray As [String]( ) = {"W", "s", "J", "t"} Console.WriteLine("Display myArray...") DisplayArray(myArray) Console.WriteLine("Reverse and display myArray...") Array.Reverse(myArray) DisplayArray(myArray) Dim myOtherArray As [String]( ) ={"W", "d", "e", "s", "o", "e", "f", "t"} Console.WriteLine("Display myOtherArray...") DisplayArray(myOtherArray) Console.WriteLine("Sort and display myOtherArray...") Array.Sort(myOtherArray) DisplayArray(myOtherArray) End Sub "Main End Class "Tester</source>
Display myArray... Value: W Value: s Value: J Value: t Reverse and display myArray... Value: t Value: J Value: s Value: W Display myOtherArray... Value: W Value: d Value: e Value: s Value: o Value: e Value: f Value: t Sort and display myOtherArray... Value: d Value: e Value: e Value: f Value: o Value: s Value: t Value: W
Array.Sort and Array.IndexOf
<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 Dim NewArray(StringArray.Length) As String Array.Copy(StringArray, NewArray, StringArray.Length) Console.WriteLine(Array.IndexOf(NewArray, "a")) End Sub
End class</source>
This is a test 2
Demonstrating binary search of an array
<source lang="vbnet">Public Class Tester
Dim Shared array1 As Integer() = New Integer(14) {} Public Shared Sub Main Dim i As Integer For i = 0 To array1.GetUpperBound(0) array1(i) = 2 * i Next Dim searchKey As Integer = 8 Dim element As Integer = BinarySearch(array1, searchKey) If element <> -1 Then Console.WriteLine("Found value in element " & element) Else Console.WriteLine("Value not found") End If
End Sub " performs binary search Shared Function BinarySearch(ByVal array As Integer(), _ ByVal key As Integer) As Integer Dim low As Integer = 0 " low index Dim high As Integer = array.GetUpperBound(0) " high index Dim middle As Integer " middle index While low <= high middle = (low + high) \ 2 If key = array(middle) Then " match Return middle ElseIf key < array(middle) Then " search low end high = middle - 1 " of array Else low = middle + 1 End If End While Return -1 " search key not found End Function " BinarySearch
End Class</source>
Found value in element 4
Linear search of an array
<source lang="vbnet">Public Class Tester
Public Shared Sub Main Dim array1 As Integer() = New Integer(19) {} Dim randomNumber As Random = New Random() Dim i As Integer " creates string containing 11 random numbers For i = 0 To array1.GetUpperBound(0) array1(i) = randomNumber.Next(1000) Console.Write ( array1(i) & " ") Next Console.WriteLine("")
Dim searchKey As Integer = 12 Dim element As Integer = LinearSearch(searchKey, array1) If element <> -1 Then Console.WriteLine("Found Value in index " & element) Else Console.WriteLine("Value Not Found") End If End Sub Shared Function LinearSearch(ByVal key As Integer, _ ByVal numbers As Integer()) As Integer Dim n As Integer " structure iterates linearly through array For n = 0 To numbers.GetUpperBound(0) If numbers(n) = key Then Return n End If Next Return -1 End Function " LinearSearch
End Class</source>
269 875 968 591 930 801 98 760 596 715 433 655 902 602 257 186 470 856 277 109 Value Not Found
Reverse the contents of an array
<source lang="vbnet">Public Class Tester
Public Shared Sub Main Dim arrayReverse() As String = {"A", "B", "C", "D", "E"} For Each fruit As String In arrayReverse Console.WriteLine(fruit) Next fruit Array.Reverse(arrayReverse) For Each fruit As String In arrayReverse Console.WriteLine(fruit) Next fruit End Sub
End Class</source>
A B C D E E D C B A