'------------------------------------------------------------------------------------------
' Notice of My Copyright and Intellectual Property Rights
'
' Any intellectual property contained within the program by Joseph L. Bolen remains the
' intellectual property of the Joseph L. Bolen. This means that no person may distribute,
' publish or provide such intellectual property to any other person or entity for any
' reason, commercial or otherwise, without the express written permission of Joseph L. Bolen.
'
' Copyright © 2014. All rights reserved.
' All trademarks remain the property of their respective owners.
'-------------------------------------------------------------------------------------------
' Program Name: Array and Iteration Demo
' Author: Joseph L. Bolen
' Date Created: Jul 2014
'
' Description: Using a ListBox to display the values of an one dimensional array using
' various iteration approaches. Also, show how to declare and load an
' array. In addition, the program will show various ways to populate a
' ListBox's item collection.
'
' Documentation is at:
' App's screen capture image is at http://imgur.com/7PSfkjX
' App's Visual Basic .NET code is at http://pastebin.com/VZz3vTZX
' App's video tutorial is at http://www.youtube.com/user/bolenpresents
'
' See Also, MSDN's article "Arrays in Visual Basic" at
' http://msdn.microsoft.com/en-us/library/wak0wfyt.aspx and
' "How to: Initialize an Array Variable in Visual Basic" at
' http://msdn.microsoft.com/en-us/library/y13tek7e.aspx .
'-------------------------------------------------------------------------------------------
Option Strict On
Imports System
Imports System.IO
Public Class MainForm
#Region " Declare Class level variables."
Const namesFile As String = "Names.txt"
Dim idx As Integer
Dim total As Double
#End Region
' Load the ListBox.
Private Sub LoadButton_Click(sender As Object, e As EventArgs) _
Handles LoadButton.Click
' Clear ListBox.
MyListBox.Items.Clear()
' Declare the array.
Dim myNumericArray As Double() = {3, 2.4, 15.6, -3.4, 20.1, 2.1}
'Populate the ListBox with infomation about the array.
'Prevent ListBox from painting until all items are added.
MyListBox.BeginUpdate()
' Loading the ListBox regarding the array using the Items.Add method.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("myNumericArray.Length value is: " & myNumericArray.Length.ToString())
MyListBox.Items.Add("myNumericArray.Count value is " & myNumericArray.Count().ToString)
MyListBox.Items.Add("myNumericArray.GetUpperBound(0) value is: " & myNumericArray.GetUpperBound(0).ToString())
MyListBox.Items.Add("myNumericArray.Min value is: " & myNumericArray.Min.ToString())
MyListBox.Items.Add("myNumericArray.Max value is: " & myNumericArray.Max.ToString())
MyListBox.Items.Add("myNumericArray.Sum value is: " & myNumericArray.Sum.ToString())
MyListBox.Items.Add("myNumericArray.Average value is: " & myNumericArray.Average.ToString("N3"))
' Using a For / Next to interate through myNumericArray and myNumericArray.Length.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("myNumericArray.Length is: " & myNumericArray.Length.ToString)
MyListBox.Items.Add("Using a For / Next to interate through myNumericArray:")
MyListBox.Items.Add("")
total = 0
For index As Integer = 0 To (myNumericArray.Length - 1) Step 1
MyListBox.Items.Add("myNumericArray element " & index.ToString & " value is: " & myNumericArray(index).ToString)
total += myNumericArray(index)
Next
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Have ListBox resume painting.
MyListBox.EndUpdate()
End Sub
' Load the ListBox using code from a file.
Private Sub LoadFromFile()
' Add above Public Class ...
' Imports System
' Imports System.IO
Try
Using sr As New StreamReader(namesFile)
Dim line As String
MyListBox.BeginUpdate()
Do While Not sr.EndOfStream
line = sr.ReadLine
MyListBox.Items.Add(line)
Loop
MyListBox.EndUpdate()
End Using
Catch ex As Exception
MessageBox.Show("The file '" & namesFile & "' could not be read.",
"File Input Problem",
MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
End Class
'===================================================================================
' Starting Point
'===================================================================================
'------------------------------------------------------------------------------------------
' Notice of My Copyright and Intellectual Property Rights
'
' Any intellectual property contained within the program by Joseph L. Bolen remains the
' intellectual property of the Joseph L. Bolen. This means that no person may distribute,
' publish or provide such intellectual property to any other person or entity for any
' reason, commercial or otherwise, without the express written permission of Joseph L. Bolen.
'
' Copyright © 2014. All rights reserved.
' All trademarks remain the property of their respective owners.
'-------------------------------------------------------------------------------------------
' Program Name: Array and Iteration Demo
' Author: Joseph L. Bolen
' Date Created: Jul 2014
'
' Description: Using a ListBox to display the values of an one dimensional array using
' various iteration approaches. Also, show how to declare and load an
' array. In addition, the program will show various ways to populate a
' ListBox's item collection.
'
' See Also, MSDN's article "Arrays in Visual Basic" at
' http://msdn.microsoft.com/en-us/library/wak0wfyt.aspx and
' "How to: Initialize an Array Variable in Visual Basic" at
' http://msdn.microsoft.com/en-us/library/y13tek7e.aspx .
'-------------------------------------------------------------------------------------------
Option Strict On
Imports System
Imports System.IO
Public Class MainForm
#Region " Declare Class level variables."
Const namesFile As String = "Names.txt"
Dim idx As Integer
Dim total As Double
#End Region
' Load the ListBox.
Private Sub LoadButton_Click(sender As Object, e As EventArgs) _
Handles LoadButton.Click
End Sub
' Load the ListBox using code from a file.
Private Sub LoadFromFile()
' Add above Public Class ...
' Imports System
' Imports System.IO
Try
Using sr As New StreamReader(namesFile)
Dim line As String
MyListBox.BeginUpdate()
Do While Not sr.EndOfStream
line = sr.ReadLine
MyListBox.Items.Add(line)
Loop
MyListBox.EndUpdate()
End Using
Catch ex As Exception
MessageBox.Show("The file '" & namesFile & "' could not be read.",
"File Input Problem",
MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
End Sub
End Class
'===================================================================================
' Load ListBox
'===================================================================================
' Clear ListBox
MyListBox.Items.Clear()
'Load the ListBox using code.
' Loading the ListBox with names using the Items.Add method.
MyListBox.BeginUpdate()
MyListBox.Items.Add("Joe")
MyListBox.Items.Add("Sally")
MyListBox.Items.Add("Jim")
MyListBox.Items.Add("George")
MyListBox.Items.Add("Susan")
MyListBox.Items.Add("Linda")
MyListBox.Items.Add("Peter")
MyListBox.EndUpdate()
' Loading the ListBox with names using Items.AddRange
MyListBox.Items.AddRange(New Object() {"Joe", "Sally", "Jim", "George", "Susan", "Linda", "Peter"})
'Loading the ListBox with string values from an array using Items.AddRange
Dim myStringArray As String() = {"Joe", "Sally", "Jim", "George", "Susan", "Linda", "Peter"}
MyListBox.Items.AddRange(myStringArray)
' Load the ListBox with names using code from a file.
LoadFromFile()
'===================================================================================
' Array Loading
'===================================================================================
' Declare the array.
Dim myNumericArray(5) As Double
' Load array with values.
myNumericArray(0) = 3
myNumericArray(1) = 2.4
myNumericArray(2) = 15.6
myNumericArray(3) = -3.4
myNumericArray(4) = 20.1
myNumericArray(5) = 2.1
'ReDim Preserve myNumericArray(6)
'myNumericArray(6) = -9.3
' OR ...
'Dim myNumericArray As Double() = {3, 2.4, 15.6, -3.4, 20.1, 2.1}
'===================================================================================
' Iteration Examples
'===================================================================================
' Declare the array.
Dim myNumericArray As Double() = {3, 2.4, 15.6, -3.4, 20.1, 2.1}
'Populate the ListBox with infomation about the array.
'Prevent ListBox from painting until all items are added.
MyListBox.BeginUpdate()
' Loading the ListBox regarding the array using the Items.Add method.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("myNumericArray.Length value is: " & myNumericArray.Length.ToString())
MyListBox.Items.Add("myNumericArray.Count value is " & myNumericArray.Count().ToString)
MyListBox.Items.Add("myNumericArray.GetUpperBound(0) value is: " & myNumericArray.GetUpperBound(0).ToString())
MyListBox.Items.Add("myNumericArray.Min value is: " & myNumericArray.Min.ToString())
MyListBox.Items.Add("myNumericArray.Max value is: " & myNumericArray.Max.ToString())
MyListBox.Items.Add("myNumericArray.Sum value is: " & myNumericArray.Sum.ToString())
MyListBox.Items.Add("myNumericArray.Average value is: " & myNumericArray.Average.ToString("N3"))
' Have ListBox resume painting.
MyListBox.EndUpdate()
'=================================================================================
'Iterate through myNumericArray.
' Using a Do / Loop to interate through myNumericArray.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("Using a Do / Loop to interate through myNumericArray:")
MyListBox.Items.Add("")
idx = 0
total = 0
Do
MyListBox.Items.Add("myNumericArray element " & idx.ToString & " value is: " & myNumericArray(idx).ToString)
total += myNumericArray(idx)
idx += 1
If idx > myNumericArray.GetUpperBound(0) Then Exit Do
Loop
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using a Do / Loop While to interate through myNumericArray.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("Using a Do / Loop While to interate through myNumericArray:")
MyListBox.Items.Add("")
idx = 0
total = 0
Do
MyListBox.Items.Add("myNumericArray element " & idx.ToString & " value is: " & myNumericArray(idx).ToString)
total += myNumericArray(idx)
idx += 1
Loop While idx < myNumericArray.Length
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using a Do / Loop Until to interate through myNumericArray.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("Using a Do / Loop Until to interate through myNumericArray:")
MyListBox.Items.Add("")
idx = 0
total = 0
Do
MyListBox.Items.Add("myNumericArray element " & idx.ToString & " value is: " & myNumericArray(idx).ToString)
total += myNumericArray(idx)
idx += 1
Loop Until idx >= myNumericArray.Length
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using a Do While / Loop to interate through myNumericArray. (Preferred)
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("Using a Do While / Loop to interate through myNumericArray:")
MyListBox.Items.Add("")
idx = 0
total = 0
Do While idx < myNumericArray.Length
MyListBox.Items.Add("myNumericArray element " & idx.ToString & " value is: " & myNumericArray(idx).ToString)
total += myNumericArray(idx)
idx += 1
Loop
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using a Do Until / Loop to interate through myNumericArray.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("Using a Do Until / Loop to interate through myNumericArray:")
MyListBox.Items.Add("")
idx = 0
total = 0
Do Until idx >= myNumericArray.Length
MyListBox.Items.Add("myNumericArray element " & idx.ToString & " value is: " & myNumericArray(idx).ToString)
total += myNumericArray(idx)
idx += 1
Loop
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using a For / Next to interate through myNumericArray and myNumericArray.Length.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("myNumericArray.Length is: " & myNumericArray.Length.ToString)
MyListBox.Items.Add("Using a For / Next to interate through myNumericArray:")
MyListBox.Items.Add("")
total = 0
For index As Integer = 0 To (myNumericArray.Length - 1) Step 1
MyListBox.Items.Add("myNumericArray element " & index.ToString & " value is: " & myNumericArray(index).ToString)
total += myNumericArray(index)
Next
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using a For / Next to interate through myNumericArray and myNumericArray.Count.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("myNumericArray.Count is " & myNumericArray.Count().ToString)
MyListBox.Items.Add("Using a For / Next to interate through myNumericArray:")
MyListBox.Items.Add("")
total = 0
For index As Integer = 0 To (myNumericArray.Count - 1)
MyListBox.Items.Add("myNumericArray element " & index.ToString & " value is: " & myNumericArray(index).ToString)
total += myNumericArray(index)
Next
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using a For / Next to interate through myNumericArray and myNumericArray.GetUpperBound(0). (Preferred)
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("myNumericArray.GetUpperBound(0) is: " & myNumericArray.GetUpperBound(0).ToString)
MyListBox.Items.Add("Using a For / Next to interate through myNumericArray:")
MyListBox.Items.Add("")
total = 0
For index As Integer = 0 To myNumericArray.GetUpperBound(0)
MyListBox.Items.Add("myNumericArray element " & index.ToString & " value is: " & myNumericArray(index).ToString)
total += myNumericArray(index)
Next
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using For Each / Next to interate through an sorted acending myNumericArray. (Preferred)
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("Using Array.Sort(myNumericArray):")
Array.Sort(myNumericArray) ' Ascending.
MyListBox.Items.Add("Using For / Each to interate through myNumericArray:")
MyListBox.Items.Add("")
total = 0
For Each value As Double In myNumericArray
MyListBox.Items.Add(value.ToString)
total += value
Next
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using For Each / Next to interate through a sorted decending myNumericArray.
MyListBox.Items.Add("----------------------------------------------------")
MyListBox.Items.Add("Using Array.Sort(myNumericArray) then Array.Reverse(myNumericArray):")
Array.Sort(myNumericArray) ' Ascending.
Array.Reverse(myNumericArray) ' Now descending.
MyListBox.Items.Add("Using For / Each to interate through myNumericArray:")
MyListBox.Items.Add("")
total = 0
For Each value As Double In myNumericArray
MyListBox.Items.Add(value.ToString)
total += value
Next
MyListBox.Items.Add("Total of all elements of myNumericArray is: " & total.ToString)
' Using LINQ to get Max value and Sum of myNumericArray. (Just for fun!)
MyListBox.Items.Add("----------------------------------------------------")
Dim arrayMax = (From value In myNumericArray).Max()
MyListBox.Items.Add("Maximum value in myNumericArray using LINQ is: " & arrayMax.ToString)
Dim arraySum = (From value In myNumericArray).Sum()
MyListBox.Items.Add("Sum of all values in myNumericArray using LINQ is: " & arraySum.ToString)
' Have ListBox resume painting.
MyListBox.EndUpdate()