SlideShare a Scribd company logo
1 of 60
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 1
Chapter 8
How to work with
arrays and collections
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 2
Objectives
Applied
1. Given the specifications for an application that requires the use of a
one-dimensional, rectangular, or jagged array, write the code that
works with the array.
2. Given the specifications for an application that requires the use of
one of the collection classes presented in this chapter, write the
code that works with the collection.
Knowledge
1. Distinguish between a for loop and a foreach loop.
2. Explain how the Array class can be used with an array.
3. Distinguish between an untyped and a typed collection class.
4. Describe the differences between these collection classes: list,
sorted list, queue, stack, and array list.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 3
The syntax for creating a one-dimensional array
With two statements
type[] arrayName; // declaration statement
arrayName = new type[arrayLength]; // assignment statement
With one statement
type[] arrayName = new type[arrayLength];
How to create an array of decimal types
With two statements
decimal[] totals;
totals = new decimal[4];
With one statement
decimal[] totals = new decimal[4];
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 4
Other examples for creating arrays
An array of strings
string[] description = new string[3];
Two arrays in one statement
const int MaxCount = 100;
decimal[] prices = new decimal[MaxCount],
discountPercentages = new decimal[MaxCount];
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 5
Default values for array elements
Data type Default value
numeric 0 (zero)
char '0' (the null character)
Boolean false
DateTime 01/01/0001 00:00:00
reference types null
Concepts
• An array can store one or more elements. The length, or size, of an
array is the number of elements in the array.
• When you create an array, each element of the array is set to a
default value.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 6
The syntax for referring to an element of an array
arrayName[index]
Examples that assign values by accessing each
element
Code that assigns values to an array of decimal types
decimal[] totals = new decimal[4];
totals[0] = 14.95m;
totals[1] = 12.95m;
totals[2] = 11.95m;
totals[3] = 9.95m;
//totals[4] = 8.95m; // this would throw an
// IndexOutOfRangeException
Code that assigns objects to an array of strings
string[] names = new string[3];
names[0] = "Ted Lewis";
names[1] = "Sue Jones";
names[2] = "Ray Thomas";
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 7
The syntax for creating an array and assigning
values in one statement
type[] arrayName = [new type[length]]
{value1[, value2][, value3]...};
Examples that create an array and assign values
in one statement
decimal[] totals
= new decimal[4] {14.95m, 12.95m, 11.95m, 9.95m};
decimal[] totals = {14.95m, 12.95m, 11.95m, 9.95m};
string[] names = {"Ted Lewis", "Sue Jones", "Ray Thomas"};
A statement that creates an array whose type is
inferred from its values
var grades = new[] {95, 89, 91, 98};
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 8
The syntax for using the Length property of an
array
arrayName.Length
Code that computes the average of an array of
totals
decimal[] totals = {14.95m, 12.95m, 11.95m, 9.95m};
decimal sum
= totals[0] + totals[1] + totals[2] + totals[3];
decimal average = sum/4;
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 9
Code that puts the numbers 0–9 into an array
int[] numbers = new int[10];
for (int i = 0; i < numbers.Length; i++)
numbers[i] = i;
Code that displays the numbers array in a
message box
string numbersString = "";
for (int i = 0; i < numbers.Length; i++)
numbersString += numbers[i] + " ";
MessageBox.Show(numbersString, "Numbers Test");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 10
Code that uses a for loop to compute the average
of the totals array
decimal sum = 0.0m;
for (int i = 0; i < totals.Length; i++)
sum += totals[i];
decimal average = sum/totals.Length;
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 11
Code that displays the totals array
string totalsString = "";
for (int i = 0; i < totals.Length; i++)
totalsString += totals[i] + "n";
MessageBox.Show("The totals are:n" +
totalsString + "n" +
"Sum: " + sum + "n" +
"Average: " + average, "Totals Test");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 12
The syntax of a foreach loop
foreach (type elementName in arrayName)
{
statements
}
Code that computes the average of the totals
array
decimal sum = 0.0m;
foreach (decimal total in totals)
sum += total;
decimal average = sum/totals.Length;
How to use foreach loops to work with arrays
• You can use a foreach loop to access each element of an array.
You can also use foreach loops to work with collections.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 13
Code that displays the numbers array in a
message box
string numbersString = "";
foreach (int number in numbers)
{
numbersString += number + " ";
}
MessageBox.Show(numbersString, "Numbers Test");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 14
Displaying the totals array in a message box
string totalsString = "";
foreach (decimal total in totals)
totalsString += total + "n";
MessageBox.Show("The totals are:n" +
totalsString + "n" +
"Sum: " + sum + "n" +
"Average: " + average,
"Totals Test");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 15
How to create a rectangular array
The syntax for creating a rectangular array
type[,] arrayName = new type[rowCount,columnCount];
A statement that creates a 3x2 array
int[,] numbers = new int[3,2];
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 16
How to assign values to a rectangular array
The syntax for referring to an element of a rectangular
array
arrayName[rowIndex, columnIndex]
The index values for the elements of a 4x4 rectangular
array
0,0 0,1 0,2 0,3
1,0 1,1 1,2 1,3
2,0 2,1 2,2 2,3
3,0 3,1 3,2 3,3
Code that assigns values to the numbers array
numbers[0,0] = 1;
numbers[0,1] = 2;
numbers[1,0] = 3;
numbers[1,1] = 4;
numbers[2,0] = 5;
numbers[2,1] = 6;
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 17
Code that creates a 3x2 array and assigns values
with one statement
int[,] numbers = { {1,2}, {3,4}, {5,6} };
Code that creates and assigns values to a 3x2
array of strings
string[,] products = { {"CS10", "Murach's C# 2010"},
{"JSE6", "Murach's Java SE 6"},
{"A4CS", "Murach's ASP.NET 4 " +
"with C# 2010"} };
Another way to create the array of strings
var products = new[,]
{{"CS10", "Murach's C# 2010"},
{"JSE6", "Murach's Java SE 6"},
{"A4CS", "Murach's ASP.NET 4 with C# 2010"}}
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 18
The syntax for using the GetLength method of a
rectangular array
arrayName.GetLength(dimensionIndex)
Code that works with the numbers array
int numberOfRows = numbers.GetLength(0);
int numberOfColumns = numbers.GetLength(1);
int sumOfFirstRow = numbers[0,0] + numbers[0,1];
How to use the GetLength method with
rectangular arrays
• You can use the GetLength method to get the number of rows or
columns in a rectangular array. To get the number of rows,
specify 0 for the dimensionIndex argument. To get the number of
columns, specify 1 for this argument.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 19
Code that displays the numbers array in a
message box
string numbersString = "";
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers.GetLength(1); j++)
numbersString += numbers[i,j] + " ";
numbersString += "n";
}
MessageBox.Show(numbersString, "Numbers Test");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 20
Code that displays the products array in a
message box
string productsString = "";
for (int i = 0; i < products.GetLength(0); i++)
{
for (int j = 0; j < products.GetLength(1); j++)
productsString += products[i,j] + "t";
productsString += "n";
}
MessageBox.Show(productsString, "Products Test");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 21
How to create a jagged array
The syntax for creating a jagged array
type[][] arrayName = new type[rowCount][];
Code that creates a jagged array with three rows of
different lengths
int[][] numbers = new int[3][]; // number of rows
numbers[0] = new int[3]; // number of columns for row 1
numbers[1] = new int[4]; // number of columns for row 2
numbers[2] = new int[2]; // number of columns for row 3
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 22
How to refer to the elements of a jagged array
The syntax for referring to an element of a jagged array
arrayName[rowIndex][columnIndex]
Code that assigns values to the numbers array
numbers[0][0] = 1;
numbers[0][1] = 2;
numbers[0][2] = 3;
numbers[1][0] = 4;
numbers[1][1] = 5;
numbers[1][2] = 6;
numbers[1][3] = 7;
numbers[2][0] = 8;
numbers[2][1] = 9;
Code that creates the numbers array with one
statement
int[][] numbers = { new int [] {1, 2, 3},
new int [] {4, 5, 6, 7},
new int [] {8, 9} };
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 23
Code that creates a jagged array of strings
string[][] titles = {
new string [3] {"War and Peace", "Wuthering Heights", "1984"},
new string [4] {"Casablanca", "Wizard of Oz", "Star Wars",
"Birdy"},
new string [2] {"Blue Suede Shoes", "Yellow Submarine"} };
Another way to create a jagged array of strings
var titles = new[]
{(new[] {"War and Peace", "Wuthering Heights", "1984"}),
(new[] {"Casablanca", "Wizard of Oz", "Star Wars",
"Birdy"}),
(new[] {"Blue Suede Shoes", "Yellow Submarine"})};
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 24
Code that displays the numbers array in a
message box
string numbersString = "";
for (int i = 0; i < numbers.GetLength(0); i++)
{
for (int j = 0; j < numbers[i].Length; j++)
numbersString += numbers[i][j] + " ";
numbersString += "n";
}
MessageBox.Show(numbersString, "Jagged Numbers");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 25
Code that displays the titles array in a message
box
string titlesString = "";
for (int i = 0; i < titles.GetLength(0); i++)
{
for (int j = 0; j < titles[i].Length; j++)
titlesString += titles[i][j] + "|";
titlesString += "n";
}
MessageBox.Show(titlesString, "Jagged Titles");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 26
Common properties and methods of the Array
class
Property Description
Length Gets the number of elements in all of
the dimensions of an array.
Instance method Description
GetLength(dimension) Gets the number of elements in the
specified dimension of an array.
GetUpperBound(dimension) Gets the index of the last element in
the specified dimension of an array.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 27
Common properties and methods of the Array
class (continued)
Static method Description
Copy(array1, array2, length) Copies some or all of the
values in one array to another
array.
BinarySearch(array, value) Searches a one-dimensional
array that’s in ascending order
for an element with a specified
value and returns the index for
that element.
Sort(array) Sorts the elements in a one-
dimensional array into
ascending order.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 28
Code that uses the GetLength and GetUpperBound
methods
int[] numbers = new int[4] {1, 2, 3, 4};
int length = numbers.GetLength(0); // length = 4
int upperBound = numbers.GetUpperBound(0); // upperBound = 3
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 29
Code that uses the Sort method
string[] lastNames = {"Boehm", "Taylor", "Murach"};
Array.Sort(lastNames);
string message = "";
foreach (string lastName in lastNames)
message += lastName + "n";
MessageBox.Show(message, "Sorted Last Names");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 30
Code that uses the BinarySearch method
string[] employees = {"AdamsA", "FinkleP", "LewisJ",
"PotterE"};
decimal[] salesAmounts = {3275.68m, 4298.55m, 5289.57m,
1933.98m};
int index = Array.BinarySearch(employees, "FinkleP");
decimal salesAmount = salesAmounts[index];
// salesAmount = 4298.55
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 31
Code that creates a reference to another array
double[] inches1 = new double[3] {1,2,3};
double[] inches2 = inches1;
inches2[2] = 4; // changes the third element
Code that reuses an array variable
inches1 = new double[20]; // make a new array
// with 20 elements
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 32
The syntax for copying elements from the
beginning of an array
Array.Copy(fromArray, toArray, length);
Code that copies all the elements of an array
double[] inches = new double[3] {1,2,3};
double[] centimeters = new double[3];
Array.Copy(inches, centimeters, inches.Length);
for (int i = 0; i < centimeters.Length; i++)
centimeters[i] *= 2.54;
// set the new values for this array
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 33
The syntax for copying selected elements from
one array to another
Array.Copy(fromArray, fromIndex, toArray, toIndex, length);
Code that copies some of the elements of an array
string[] names = {"Vasquez", "Murach", "Boehm"};
string[] lastTwoNames = new string[2];
Array.Copy(names, 1, lastTwoNames, 0, 2);
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 34
How to return an array from a method
The code for a method that returns an array
private decimal[] GetRateArray(int elementCount)
{
decimal[] rates = new decimal[elementCount - 1];
for (int i = 0; i < rates.Length; i++)
rates[i] = (decimal) (i + 1) / 100;
return rates;
}
A statement that calls the method
decimal[] rates = this.GetRateArray(4);
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 35
How to code a method that accepts an array
argument
A method that converts inches to centimeters
private void ToCentimeters(double[] measurements)
{
for (int i = 0; i < measurements.Length; i++)
measurements[i] *= 2.54;
}
Statements that declare the array and call the method
double[] measurements = {1,2,3};
this.ToCentimeters(measurements);
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 36
How to use the params keyword in a method
A method that converts inches to centimeters
private double[] ToCentimeters(params double[]
measurements)
{
for (int i = 0; i < measurements.Length; i++)
measurements[i] *= 2.54;
return measurements;
}
A statement that calls the method
double[] measurements = this.ToCentimeters(1,2,3);
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 37
How arrays and collections are similar
• Both can store multiple elements, which can be value types or
reference types.
How arrays and collections are different
• An array is a feature of the C# language. Collections are classes in
the .NET Framework.
• Collection classes provide methods to perform operations that
arrays don’t provide.
• Arrays are fixed in size. Collections are variable in size.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 38
Commonly used collection classes
.NET 2.0 to 4 .NET 1.x Description
List<T> ArrayList Uses an index to access each
element.
Is very efficient for accessing
elements sequentially.
Can be inefficient when
inserting elements in the middle
of a list.
SortedList<K, V> SortedList Uses a key to access a value,
which can be any type of object.
Can be inefficient for accessing
elements sequentially.
Is very efficient for inserting
elements into the middle of a
list.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 39
Commonly used collection classes (continued)
.NET 2.0 to 4 .NET 1.x Description
Queue<T> Queue Uses methods to add and remove
elements.
Stack<T> Stack Uses methods to add and remove
elements.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 40
Untyped collections
The using statement
using System.Collections;
An example
ArrayList numbers = new ArrayList();
numbers.Add(3);
numbers.Add(7);
numbers.Add("Test");
// will compile - causes runtime error
int sum = 0;
for (int i = 0; i < numbers.Count; i++)
{
int number = (int)numbers[i]; // cast is required
sum += number;
}
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 41
Typed collections
The using statement
using System.Collections.Generic;
An example
List<int> numbers = new List<int>();
numbers.Add(3);
numbers.Add(7);
//numbers.Add("Test");
// won't compile – prevents runtime error
int sum = 0;
for (int i = 0; i < numbers.Count; i++)
{
int number = numbers[i]; // no cast needed
sum += number;
}
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 42
A statement that creates a list of string elements
List<string> titles = new List<string>();
A statement that creates a list of decimal
elements
List<decimal> prices = new List<decimal>();
A statement that creates a list of strings with a
capacity of 3
List<string> lastNames = new List<string>(3);
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 43
Common properties and methods of the List<>
class
Indexer Description
[index] Gets or sets the element at the specified
index. The index for the first item in a list is
0.
Property Description
Capacity Gets or sets the number of elements the list
can hold.
Count Gets the number of elements in the list.
Method Description
Add(object) Adds an element to the end of a list and
returns the element’s index.
Clear() Removes all elements from the list and sets
its Count property to zero.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 44
Common methods of the List<> class (continued)
Method Description
Contains(object) Returns a Boolean value that indicates if
the list contains the specified object.
Insert(index, object) Inserts an element into a list at the
specified index.
Remove(object) Removes the first occurrence of the
specified object from the list.
RemoveAt(index) Removes the element at the specified
index of a list.
BinarySearch(object) Searches a list for a specified object and
returns the index for that object.
Sort() Sorts the elements in a list into ascending
order.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 45
Code that causes the size of a list of names to be
increased
List<string> lastNames = new List<string>(3);
lastNames.Add("Boehm");
lastNames.Add("Vasquez");
lastNames.Add("Murach");
lastNames.Add("Taylor"); //Capacity is doubled to 6
lastNames.Add("Holland");
lastNames.Add("Steelman");
lastNames.Add("Slivkoff"); //Capacity is doubled to 12
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 46
The syntax for retrieving a value from a list
listName[index]
Code that creates a list that holds decimal values
List<decimal> salesTotals = new List<decimal>
{ 3275.68m, 4398.55m, 5289.75m, 1933.98m };
Code that retrieves the first value from the list
decimal sales1 = salesTotals[0]; // sales1 = 3275.68
Code that inserts and removes list elements
salesTotals.Insert(0, 2745.73m);
// insert a new first element
sales1 = salesTotals[0]; // sales1 = 2745.73
decimal sales2 = salesTotals[1]; // sales2 = 3275.68
salesTotals.RemoveAt(1); // remove the second element
sales2 = salesTotals[1]; // sales2 = 4398.55
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 47
Code that displays the list in a message box
string salesTotalsString = "";
foreach (decimal d in salesTotals)
salesTotalsString += d + "n";
MessageBox.Show(salesTotalsString, "Sales Totals");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 48
Code that checks for an element in the list and
removes it if it exists
decimal x = 2745.73m;
if (salesTotals.Contains(x))
salesTotals.Remove(x);
Code that sorts and searches the list
salesTotals.Sort();
int sales2Index = salesTotals.BinarySearch(sales2);
A message box that displays the results of the
sort and search operation
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 49
Common properties of the SortedList<> class
Indexer Description
[key] Gets or sets the value of the element with the
specified key.
Property Description
Keys Gets a collection that contains the keys in the
list.
Values Gets a collection that contains the values in the
list.
Capacity Gets or sets the number of elements the list can
hold.
Count Gets the number of elements in the list.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 50
Common methods of the SortedList<> class
Method Description
Add(key, value) Adds an element with the specified key and
value to the sorted list.
Clear() Removes all elements from the sorted list.
ContainsKey(key) Returns a Boolean value that tells whether
the sorted list contains the specified key.
ContainsValue(value) Returns a Boolean value that tells whether
the sorted list contains the specified value.
GetByIndex(index) Gets the value of the element at the specified
index.
GetKey(index) Gets the key of the element at the specified
index.
Remove(key) Removes the element with the specified key.
RemoveAt(index) Removes the element at the specified index.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 51
Properties of the KeyValuePair<K, V> structure
Property Description
Key The key for the SortedList item.
Value The value associated with the key.
Code that creates and loads a sorted list
SortedList<string, decimal> salesList
= new SortedList<string, decimal>(4);
salesList.Add("AdamsA", 3275.68m);
salesList.Add("FinkleP", 4398.55m);
salesList.Add("LewisJ", 5289.75m);
salesList.Add("PotterE", 1933.98m);
Another way to create and load the sorted list
SortedList<string, decimal> salesList = new
SortedList<string, decimal>
{ { "AdamsA", 3275.68m }, { "FinkleP", 4398.55m },
{ "LewisJ", 5289.75m }, { "PotterE", 1933.98m } };
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 52
Code that looks up a value in the sorted list based
on a key
string employeeKey = "LewisJ";
decimal salesTotal = salesList[employeeKey];
Code that converts the sorted list to a
tab-delimited string
string salesTableString = "";
foreach (KeyValuePair<string, decimal>
employeeSalesEntry in salesList)
{
salesTableString += employeeSalesEntry.Key + "t"
+ employeeSalesEntry.Value + "n";
}
MessageBox.Show(
salesTableString, "Employee Sales Totals");
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 53
Properties and methods of the Queue<> class
Property Description
Count Gets the number of items in the queue.
Method Description
Enqueue(object) Adds the specified object to the end of the
queue.
Dequeue() Gets the object at the front of the queue and
removes it from the queue.
Clear() Removes all items from the queue.
Peek() Retrieves the next item in the queue without
deleting it.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 54
The message box that's displayed
Code that uses a queue
Queue<string> nameQueue = new Queue<string>();
nameQueue.Enqueue("Boehm");
nameQueue.Enqueue("Vasquez");
nameQueue.Enqueue("Murach");
string nameQueueString = "";
while (nameQueue.Count > 0)
nameQueueString += nameQueue.Dequeue() + "n";
MessageBox.Show(nameQueueString, "Queue");
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 55
Properties and methods of the Stack<> class
Property Description
Count Gets the number of items in the stack.
Method Description
Push(object) Adds the specified object to the top of the stack.
Pop() Gets the object at the top of the stack and removes
it from the stack.
Clear() Removes all items from the stack.
Peek() Retrieves the next item in the stack without
deleting it.
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 56
Code that uses a stack
Stack<string> nameStack = new Stack<string>();
nameStack.Push("Boehm");
nameStack.Push("Vasquez");
nameStack.Push("Murach");
string nameStackString = "";
while (nameStack.Count > 0)
nameStackString += nameStack.Pop() + "n";
MessageBox.Show(nameStackString, "Stack");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 57
The syntax for retrieving a value from an array list
(type) arrayName[index]
Code that creates an array list that holds decimal
values
decimal[] newSalesTotals = {3275.68m, 4398.55m, 5289.75m,
1933.98m};
ArrayList salesTotals = new ArrayList();
foreach (decimal d in newSalesTotals)
salesTotals.Add(d);
Another way to create the array list
ArrayList salesTotals = new ArrayList
{ 3275.68m, 4398.55m, 5289.75m, 1933.98m };
Code that retrieves the first value from the array
list
decimal sales1 = (decimal) salesTotals[0];
// sales1 = 3275.68
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 58
Code that inserts and removes an element from the
array list
// insert a new first element
salesTotals.Insert(0, 2745.73m);
sales1 = (decimal) salesTotals[0]; // sales1 = 2745.73
decimal sales2 = (decimal) salesTotals[1];
// sales2 = 3275.68
// remove the second element
salesTotals.RemoveAt(1);
sales2 = (decimal) salesTotals[1]; // sales2 = 4398.55
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 59
Code that displays the array list in a message box
string salesTotalsString = "";
foreach (decimal d in salesTotals)
salesTotalsString += d + "n";
MessageBox.Show(salesTotalsString, "Sales Totals");
The message box that’s displayed
Murach’s C#
2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 60
Code that checks for an element in the array list
and removes it if it exists
decimal x = 2745.73m;
if (salesTotals.Contains(x))
salesTotals.Remove(x);
Code that sorts and searches the array list
salesTotals.Sort();
int sales2Index = salesTotals.BinarySearch(sales2);

More Related Content

What's hot

C# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slidesC# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-24-slides
C# Tutorial MSM_Murach chapter-24-slidesC# Tutorial MSM_Murach chapter-24-slides
C# Tutorial MSM_Murach chapter-24-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-11-slides
C# Tutorial MSM_Murach chapter-11-slidesC# Tutorial MSM_Murach chapter-11-slides
C# Tutorial MSM_Murach chapter-11-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-03-slides
C# Tutorial MSM_Murach chapter-03-slidesC# Tutorial MSM_Murach chapter-03-slides
C# Tutorial MSM_Murach chapter-03-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-16-slides
C# Tutorial MSM_Murach chapter-16-slidesC# Tutorial MSM_Murach chapter-16-slides
C# Tutorial MSM_Murach chapter-16-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-18-slides
C# Tutorial MSM_Murach chapter-18-slidesC# Tutorial MSM_Murach chapter-18-slides
C# Tutorial MSM_Murach chapter-18-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slidesC# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-14-slides
C# Tutorial MSM_Murach chapter-14-slidesC# Tutorial MSM_Murach chapter-14-slides
C# Tutorial MSM_Murach chapter-14-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-20-slides
C# Tutorial MSM_Murach chapter-20-slidesC# Tutorial MSM_Murach chapter-20-slides
C# Tutorial MSM_Murach chapter-20-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-25-slides
C# Tutorial MSM_Murach chapter-25-slidesC# Tutorial MSM_Murach chapter-25-slides
C# Tutorial MSM_Murach chapter-25-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-21-slides
C# Tutorial MSM_Murach chapter-21-slidesC# Tutorial MSM_Murach chapter-21-slides
C# Tutorial MSM_Murach chapter-21-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-02-slides
C# Tutorial MSM_Murach chapter-02-slidesC# Tutorial MSM_Murach chapter-02-slides
C# Tutorial MSM_Murach chapter-02-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-17-slides
C# Tutorial MSM_Murach chapter-17-slidesC# Tutorial MSM_Murach chapter-17-slides
C# Tutorial MSM_Murach chapter-17-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-22-slides
C# Tutorial MSM_Murach chapter-22-slidesC# Tutorial MSM_Murach chapter-22-slides
C# Tutorial MSM_Murach chapter-22-slidesSami Mut
 
C# Tutorial MSM_Murach chapter-10-slides
C# Tutorial MSM_Murach chapter-10-slidesC# Tutorial MSM_Murach chapter-10-slides
C# Tutorial MSM_Murach chapter-10-slidesSami Mut
 
Autocad excel vba
Autocad excel vbaAutocad excel vba
Autocad excel vbarjg_vijay
 
FP304 DATABASE SYSTEM PAPER FINAL EXAM AGAIN
FP304 DATABASE SYSTEM  PAPER FINAL EXAM AGAINFP304 DATABASE SYSTEM  PAPER FINAL EXAM AGAIN
FP304 DATABASE SYSTEM PAPER FINAL EXAM AGAINSyahriha Ruslan
 

What's hot (20)

C# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slidesC# Tutorial MSM_Murach chapter-15-slides
C# Tutorial MSM_Murach chapter-15-slides
 
C# Tutorial MSM_Murach chapter-24-slides
C# Tutorial MSM_Murach chapter-24-slidesC# Tutorial MSM_Murach chapter-24-slides
C# Tutorial MSM_Murach chapter-24-slides
 
C# Tutorial MSM_Murach chapter-11-slides
C# Tutorial MSM_Murach chapter-11-slidesC# Tutorial MSM_Murach chapter-11-slides
C# Tutorial MSM_Murach chapter-11-slides
 
C# Tutorial MSM_Murach chapter-03-slides
C# Tutorial MSM_Murach chapter-03-slidesC# Tutorial MSM_Murach chapter-03-slides
C# Tutorial MSM_Murach chapter-03-slides
 
C# Tutorial MSM_Murach chapter-16-slides
C# Tutorial MSM_Murach chapter-16-slidesC# Tutorial MSM_Murach chapter-16-slides
C# Tutorial MSM_Murach chapter-16-slides
 
C# Tutorial MSM_Murach chapter-18-slides
C# Tutorial MSM_Murach chapter-18-slidesC# Tutorial MSM_Murach chapter-18-slides
C# Tutorial MSM_Murach chapter-18-slides
 
C# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slidesC# Tutorial MSM_Murach chapter-05-slides
C# Tutorial MSM_Murach chapter-05-slides
 
C# Tutorial MSM_Murach chapter-14-slides
C# Tutorial MSM_Murach chapter-14-slidesC# Tutorial MSM_Murach chapter-14-slides
C# Tutorial MSM_Murach chapter-14-slides
 
C# Tutorial MSM_Murach chapter-20-slides
C# Tutorial MSM_Murach chapter-20-slidesC# Tutorial MSM_Murach chapter-20-slides
C# Tutorial MSM_Murach chapter-20-slides
 
C# Tutorial MSM_Murach chapter-25-slides
C# Tutorial MSM_Murach chapter-25-slidesC# Tutorial MSM_Murach chapter-25-slides
C# Tutorial MSM_Murach chapter-25-slides
 
C# Tutorial MSM_Murach chapter-21-slides
C# Tutorial MSM_Murach chapter-21-slidesC# Tutorial MSM_Murach chapter-21-slides
C# Tutorial MSM_Murach chapter-21-slides
 
C# Tutorial MSM_Murach chapter-02-slides
C# Tutorial MSM_Murach chapter-02-slidesC# Tutorial MSM_Murach chapter-02-slides
C# Tutorial MSM_Murach chapter-02-slides
 
C# Tutorial MSM_Murach chapter-17-slides
C# Tutorial MSM_Murach chapter-17-slidesC# Tutorial MSM_Murach chapter-17-slides
C# Tutorial MSM_Murach chapter-17-slides
 
C# Tutorial MSM_Murach chapter-22-slides
C# Tutorial MSM_Murach chapter-22-slidesC# Tutorial MSM_Murach chapter-22-slides
C# Tutorial MSM_Murach chapter-22-slides
 
C# Tutorial MSM_Murach chapter-10-slides
C# Tutorial MSM_Murach chapter-10-slidesC# Tutorial MSM_Murach chapter-10-slides
C# Tutorial MSM_Murach chapter-10-slides
 
Intake 38 9
Intake 38 9Intake 38 9
Intake 38 9
 
Intake 38 7
Intake 38 7Intake 38 7
Intake 38 7
 
Intake 38 8
Intake 38 8Intake 38 8
Intake 38 8
 
Autocad excel vba
Autocad excel vbaAutocad excel vba
Autocad excel vba
 
FP304 DATABASE SYSTEM PAPER FINAL EXAM AGAIN
FP304 DATABASE SYSTEM  PAPER FINAL EXAM AGAINFP304 DATABASE SYSTEM  PAPER FINAL EXAM AGAIN
FP304 DATABASE SYSTEM PAPER FINAL EXAM AGAIN
 

Similar to C# Tutorial MSM_Murach chapter-08-slides

Similar to C# Tutorial MSM_Murach chapter-08-slides (20)

Arrays In General
Arrays In GeneralArrays In General
Arrays In General
 
Lab manual data structure (cs305 rgpv) (usefulsearch.org) (useful search)
Lab manual data structure (cs305 rgpv) (usefulsearch.org)  (useful search)Lab manual data structure (cs305 rgpv) (usefulsearch.org)  (useful search)
Lab manual data structure (cs305 rgpv) (usefulsearch.org) (useful search)
 
C# Arrays
C# ArraysC# Arrays
C# Arrays
 
C sharp chap6
C sharp chap6C sharp chap6
C sharp chap6
 
Programming in Java: Arrays
Programming in Java: ArraysProgramming in Java: Arrays
Programming in Java: Arrays
 
Visual Programing basic lectures 7.pptx
Visual Programing basic lectures  7.pptxVisual Programing basic lectures  7.pptx
Visual Programing basic lectures 7.pptx
 
Multi dimensional arrays
Multi dimensional arraysMulti dimensional arrays
Multi dimensional arrays
 
Csphtp1 07
Csphtp1 07Csphtp1 07
Csphtp1 07
 
COM1407: Arrays
COM1407: ArraysCOM1407: Arrays
COM1407: Arrays
 
Arrays
ArraysArrays
Arrays
 
Unit4 Slides
Unit4 SlidesUnit4 Slides
Unit4 Slides
 
Arrays & Strings
Arrays & StringsArrays & Strings
Arrays & Strings
 
SECTION D2)Display the item number and total cost for each order l.docx
SECTION D2)Display the item number and total cost for each order l.docxSECTION D2)Display the item number and total cost for each order l.docx
SECTION D2)Display the item number and total cost for each order l.docx
 
Array
ArrayArray
Array
 
CP Handout#9
CP Handout#9CP Handout#9
CP Handout#9
 
June 05 P2
June 05 P2June 05 P2
June 05 P2
 
Arrays
ArraysArrays
Arrays
 
C# basics
C# basicsC# basics
C# basics
 
Arrays and strings in c++
Arrays and strings in c++Arrays and strings in c++
Arrays and strings in c++
 
Lecture 1 mte 407
Lecture 1 mte 407Lecture 1 mte 407
Lecture 1 mte 407
 

More from Sami Mut

C# Tutorial MSM_Murach chapter-01-slides
C# Tutorial MSM_Murach chapter-01-slidesC# Tutorial MSM_Murach chapter-01-slides
C# Tutorial MSM_Murach chapter-01-slidesSami Mut
 
chapter 5 Java at rupp cambodia
chapter 5 Java at rupp cambodiachapter 5 Java at rupp cambodia
chapter 5 Java at rupp cambodiaSami Mut
 
chapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodiachapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodiaSami Mut
 
chapter 3 Java at rupp cambodia
chapter 3 Java at rupp cambodiachapter 3 Java at rupp cambodia
chapter 3 Java at rupp cambodiaSami Mut
 
chapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodiachapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodiaSami Mut
 
chapter 1 Java at rupp cambodia
chapter 1 Java at rupp cambodiachapter 1 Java at rupp cambodia
chapter 1 Java at rupp cambodiaSami Mut
 

More from Sami Mut (7)

C# Tutorial MSM_Murach chapter-01-slides
C# Tutorial MSM_Murach chapter-01-slidesC# Tutorial MSM_Murach chapter-01-slides
C# Tutorial MSM_Murach chapter-01-slides
 
MSM_Time
MSM_TimeMSM_Time
MSM_Time
 
chapter 5 Java at rupp cambodia
chapter 5 Java at rupp cambodiachapter 5 Java at rupp cambodia
chapter 5 Java at rupp cambodia
 
chapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodiachapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodia
 
chapter 3 Java at rupp cambodia
chapter 3 Java at rupp cambodiachapter 3 Java at rupp cambodia
chapter 3 Java at rupp cambodia
 
chapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodiachapter 2 Java at rupp cambodia
chapter 2 Java at rupp cambodia
 
chapter 1 Java at rupp cambodia
chapter 1 Java at rupp cambodiachapter 1 Java at rupp cambodia
chapter 1 Java at rupp cambodia
 

Recently uploaded

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Recently uploaded (20)

#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

C# Tutorial MSM_Murach chapter-08-slides

  • 1. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 1 Chapter 8 How to work with arrays and collections
  • 2. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 2 Objectives Applied 1. Given the specifications for an application that requires the use of a one-dimensional, rectangular, or jagged array, write the code that works with the array. 2. Given the specifications for an application that requires the use of one of the collection classes presented in this chapter, write the code that works with the collection. Knowledge 1. Distinguish between a for loop and a foreach loop. 2. Explain how the Array class can be used with an array. 3. Distinguish between an untyped and a typed collection class. 4. Describe the differences between these collection classes: list, sorted list, queue, stack, and array list.
  • 3. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 3 The syntax for creating a one-dimensional array With two statements type[] arrayName; // declaration statement arrayName = new type[arrayLength]; // assignment statement With one statement type[] arrayName = new type[arrayLength]; How to create an array of decimal types With two statements decimal[] totals; totals = new decimal[4]; With one statement decimal[] totals = new decimal[4];
  • 4. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 4 Other examples for creating arrays An array of strings string[] description = new string[3]; Two arrays in one statement const int MaxCount = 100; decimal[] prices = new decimal[MaxCount], discountPercentages = new decimal[MaxCount];
  • 5. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 5 Default values for array elements Data type Default value numeric 0 (zero) char '0' (the null character) Boolean false DateTime 01/01/0001 00:00:00 reference types null Concepts • An array can store one or more elements. The length, or size, of an array is the number of elements in the array. • When you create an array, each element of the array is set to a default value.
  • 6. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 6 The syntax for referring to an element of an array arrayName[index] Examples that assign values by accessing each element Code that assigns values to an array of decimal types decimal[] totals = new decimal[4]; totals[0] = 14.95m; totals[1] = 12.95m; totals[2] = 11.95m; totals[3] = 9.95m; //totals[4] = 8.95m; // this would throw an // IndexOutOfRangeException Code that assigns objects to an array of strings string[] names = new string[3]; names[0] = "Ted Lewis"; names[1] = "Sue Jones"; names[2] = "Ray Thomas";
  • 7. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 7 The syntax for creating an array and assigning values in one statement type[] arrayName = [new type[length]] {value1[, value2][, value3]...}; Examples that create an array and assign values in one statement decimal[] totals = new decimal[4] {14.95m, 12.95m, 11.95m, 9.95m}; decimal[] totals = {14.95m, 12.95m, 11.95m, 9.95m}; string[] names = {"Ted Lewis", "Sue Jones", "Ray Thomas"}; A statement that creates an array whose type is inferred from its values var grades = new[] {95, 89, 91, 98};
  • 8. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 8 The syntax for using the Length property of an array arrayName.Length Code that computes the average of an array of totals decimal[] totals = {14.95m, 12.95m, 11.95m, 9.95m}; decimal sum = totals[0] + totals[1] + totals[2] + totals[3]; decimal average = sum/4;
  • 9. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 9 Code that puts the numbers 0–9 into an array int[] numbers = new int[10]; for (int i = 0; i < numbers.Length; i++) numbers[i] = i; Code that displays the numbers array in a message box string numbersString = ""; for (int i = 0; i < numbers.Length; i++) numbersString += numbers[i] + " "; MessageBox.Show(numbersString, "Numbers Test"); The message box that’s displayed
  • 10. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 10 Code that uses a for loop to compute the average of the totals array decimal sum = 0.0m; for (int i = 0; i < totals.Length; i++) sum += totals[i]; decimal average = sum/totals.Length;
  • 11. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 11 Code that displays the totals array string totalsString = ""; for (int i = 0; i < totals.Length; i++) totalsString += totals[i] + "n"; MessageBox.Show("The totals are:n" + totalsString + "n" + "Sum: " + sum + "n" + "Average: " + average, "Totals Test"); The message box that’s displayed
  • 12. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 12 The syntax of a foreach loop foreach (type elementName in arrayName) { statements } Code that computes the average of the totals array decimal sum = 0.0m; foreach (decimal total in totals) sum += total; decimal average = sum/totals.Length; How to use foreach loops to work with arrays • You can use a foreach loop to access each element of an array. You can also use foreach loops to work with collections.
  • 13. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 13 Code that displays the numbers array in a message box string numbersString = ""; foreach (int number in numbers) { numbersString += number + " "; } MessageBox.Show(numbersString, "Numbers Test"); The message box that’s displayed
  • 14. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 14 Displaying the totals array in a message box string totalsString = ""; foreach (decimal total in totals) totalsString += total + "n"; MessageBox.Show("The totals are:n" + totalsString + "n" + "Sum: " + sum + "n" + "Average: " + average, "Totals Test"); The message box that’s displayed
  • 15. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 15 How to create a rectangular array The syntax for creating a rectangular array type[,] arrayName = new type[rowCount,columnCount]; A statement that creates a 3x2 array int[,] numbers = new int[3,2];
  • 16. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 16 How to assign values to a rectangular array The syntax for referring to an element of a rectangular array arrayName[rowIndex, columnIndex] The index values for the elements of a 4x4 rectangular array 0,0 0,1 0,2 0,3 1,0 1,1 1,2 1,3 2,0 2,1 2,2 2,3 3,0 3,1 3,2 3,3 Code that assigns values to the numbers array numbers[0,0] = 1; numbers[0,1] = 2; numbers[1,0] = 3; numbers[1,1] = 4; numbers[2,0] = 5; numbers[2,1] = 6;
  • 17. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 17 Code that creates a 3x2 array and assigns values with one statement int[,] numbers = { {1,2}, {3,4}, {5,6} }; Code that creates and assigns values to a 3x2 array of strings string[,] products = { {"CS10", "Murach's C# 2010"}, {"JSE6", "Murach's Java SE 6"}, {"A4CS", "Murach's ASP.NET 4 " + "with C# 2010"} }; Another way to create the array of strings var products = new[,] {{"CS10", "Murach's C# 2010"}, {"JSE6", "Murach's Java SE 6"}, {"A4CS", "Murach's ASP.NET 4 with C# 2010"}}
  • 18. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 18 The syntax for using the GetLength method of a rectangular array arrayName.GetLength(dimensionIndex) Code that works with the numbers array int numberOfRows = numbers.GetLength(0); int numberOfColumns = numbers.GetLength(1); int sumOfFirstRow = numbers[0,0] + numbers[0,1]; How to use the GetLength method with rectangular arrays • You can use the GetLength method to get the number of rows or columns in a rectangular array. To get the number of rows, specify 0 for the dimensionIndex argument. To get the number of columns, specify 1 for this argument.
  • 19. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 19 Code that displays the numbers array in a message box string numbersString = ""; for (int i = 0; i < numbers.GetLength(0); i++) { for (int j = 0; j < numbers.GetLength(1); j++) numbersString += numbers[i,j] + " "; numbersString += "n"; } MessageBox.Show(numbersString, "Numbers Test"); The message box that’s displayed
  • 20. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 20 Code that displays the products array in a message box string productsString = ""; for (int i = 0; i < products.GetLength(0); i++) { for (int j = 0; j < products.GetLength(1); j++) productsString += products[i,j] + "t"; productsString += "n"; } MessageBox.Show(productsString, "Products Test"); The message box that’s displayed
  • 21. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 21 How to create a jagged array The syntax for creating a jagged array type[][] arrayName = new type[rowCount][]; Code that creates a jagged array with three rows of different lengths int[][] numbers = new int[3][]; // number of rows numbers[0] = new int[3]; // number of columns for row 1 numbers[1] = new int[4]; // number of columns for row 2 numbers[2] = new int[2]; // number of columns for row 3
  • 22. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 22 How to refer to the elements of a jagged array The syntax for referring to an element of a jagged array arrayName[rowIndex][columnIndex] Code that assigns values to the numbers array numbers[0][0] = 1; numbers[0][1] = 2; numbers[0][2] = 3; numbers[1][0] = 4; numbers[1][1] = 5; numbers[1][2] = 6; numbers[1][3] = 7; numbers[2][0] = 8; numbers[2][1] = 9; Code that creates the numbers array with one statement int[][] numbers = { new int [] {1, 2, 3}, new int [] {4, 5, 6, 7}, new int [] {8, 9} };
  • 23. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 23 Code that creates a jagged array of strings string[][] titles = { new string [3] {"War and Peace", "Wuthering Heights", "1984"}, new string [4] {"Casablanca", "Wizard of Oz", "Star Wars", "Birdy"}, new string [2] {"Blue Suede Shoes", "Yellow Submarine"} }; Another way to create a jagged array of strings var titles = new[] {(new[] {"War and Peace", "Wuthering Heights", "1984"}), (new[] {"Casablanca", "Wizard of Oz", "Star Wars", "Birdy"}), (new[] {"Blue Suede Shoes", "Yellow Submarine"})};
  • 24. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 24 Code that displays the numbers array in a message box string numbersString = ""; for (int i = 0; i < numbers.GetLength(0); i++) { for (int j = 0; j < numbers[i].Length; j++) numbersString += numbers[i][j] + " "; numbersString += "n"; } MessageBox.Show(numbersString, "Jagged Numbers"); The message box that’s displayed
  • 25. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 25 Code that displays the titles array in a message box string titlesString = ""; for (int i = 0; i < titles.GetLength(0); i++) { for (int j = 0; j < titles[i].Length; j++) titlesString += titles[i][j] + "|"; titlesString += "n"; } MessageBox.Show(titlesString, "Jagged Titles"); The message box that’s displayed
  • 26. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 26 Common properties and methods of the Array class Property Description Length Gets the number of elements in all of the dimensions of an array. Instance method Description GetLength(dimension) Gets the number of elements in the specified dimension of an array. GetUpperBound(dimension) Gets the index of the last element in the specified dimension of an array.
  • 27. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 27 Common properties and methods of the Array class (continued) Static method Description Copy(array1, array2, length) Copies some or all of the values in one array to another array. BinarySearch(array, value) Searches a one-dimensional array that’s in ascending order for an element with a specified value and returns the index for that element. Sort(array) Sorts the elements in a one- dimensional array into ascending order.
  • 28. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 28 Code that uses the GetLength and GetUpperBound methods int[] numbers = new int[4] {1, 2, 3, 4}; int length = numbers.GetLength(0); // length = 4 int upperBound = numbers.GetUpperBound(0); // upperBound = 3
  • 29. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 29 Code that uses the Sort method string[] lastNames = {"Boehm", "Taylor", "Murach"}; Array.Sort(lastNames); string message = ""; foreach (string lastName in lastNames) message += lastName + "n"; MessageBox.Show(message, "Sorted Last Names"); The message box that’s displayed
  • 30. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 30 Code that uses the BinarySearch method string[] employees = {"AdamsA", "FinkleP", "LewisJ", "PotterE"}; decimal[] salesAmounts = {3275.68m, 4298.55m, 5289.57m, 1933.98m}; int index = Array.BinarySearch(employees, "FinkleP"); decimal salesAmount = salesAmounts[index]; // salesAmount = 4298.55
  • 31. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 31 Code that creates a reference to another array double[] inches1 = new double[3] {1,2,3}; double[] inches2 = inches1; inches2[2] = 4; // changes the third element Code that reuses an array variable inches1 = new double[20]; // make a new array // with 20 elements
  • 32. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 32 The syntax for copying elements from the beginning of an array Array.Copy(fromArray, toArray, length); Code that copies all the elements of an array double[] inches = new double[3] {1,2,3}; double[] centimeters = new double[3]; Array.Copy(inches, centimeters, inches.Length); for (int i = 0; i < centimeters.Length; i++) centimeters[i] *= 2.54; // set the new values for this array
  • 33. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 33 The syntax for copying selected elements from one array to another Array.Copy(fromArray, fromIndex, toArray, toIndex, length); Code that copies some of the elements of an array string[] names = {"Vasquez", "Murach", "Boehm"}; string[] lastTwoNames = new string[2]; Array.Copy(names, 1, lastTwoNames, 0, 2);
  • 34. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 34 How to return an array from a method The code for a method that returns an array private decimal[] GetRateArray(int elementCount) { decimal[] rates = new decimal[elementCount - 1]; for (int i = 0; i < rates.Length; i++) rates[i] = (decimal) (i + 1) / 100; return rates; } A statement that calls the method decimal[] rates = this.GetRateArray(4);
  • 35. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 35 How to code a method that accepts an array argument A method that converts inches to centimeters private void ToCentimeters(double[] measurements) { for (int i = 0; i < measurements.Length; i++) measurements[i] *= 2.54; } Statements that declare the array and call the method double[] measurements = {1,2,3}; this.ToCentimeters(measurements);
  • 36. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 36 How to use the params keyword in a method A method that converts inches to centimeters private double[] ToCentimeters(params double[] measurements) { for (int i = 0; i < measurements.Length; i++) measurements[i] *= 2.54; return measurements; } A statement that calls the method double[] measurements = this.ToCentimeters(1,2,3);
  • 37. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 37 How arrays and collections are similar • Both can store multiple elements, which can be value types or reference types. How arrays and collections are different • An array is a feature of the C# language. Collections are classes in the .NET Framework. • Collection classes provide methods to perform operations that arrays don’t provide. • Arrays are fixed in size. Collections are variable in size.
  • 38. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 38 Commonly used collection classes .NET 2.0 to 4 .NET 1.x Description List<T> ArrayList Uses an index to access each element. Is very efficient for accessing elements sequentially. Can be inefficient when inserting elements in the middle of a list. SortedList<K, V> SortedList Uses a key to access a value, which can be any type of object. Can be inefficient for accessing elements sequentially. Is very efficient for inserting elements into the middle of a list.
  • 39. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 39 Commonly used collection classes (continued) .NET 2.0 to 4 .NET 1.x Description Queue<T> Queue Uses methods to add and remove elements. Stack<T> Stack Uses methods to add and remove elements.
  • 40. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 40 Untyped collections The using statement using System.Collections; An example ArrayList numbers = new ArrayList(); numbers.Add(3); numbers.Add(7); numbers.Add("Test"); // will compile - causes runtime error int sum = 0; for (int i = 0; i < numbers.Count; i++) { int number = (int)numbers[i]; // cast is required sum += number; }
  • 41. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 41 Typed collections The using statement using System.Collections.Generic; An example List<int> numbers = new List<int>(); numbers.Add(3); numbers.Add(7); //numbers.Add("Test"); // won't compile – prevents runtime error int sum = 0; for (int i = 0; i < numbers.Count; i++) { int number = numbers[i]; // no cast needed sum += number; }
  • 42. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 42 A statement that creates a list of string elements List<string> titles = new List<string>(); A statement that creates a list of decimal elements List<decimal> prices = new List<decimal>(); A statement that creates a list of strings with a capacity of 3 List<string> lastNames = new List<string>(3);
  • 43. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 43 Common properties and methods of the List<> class Indexer Description [index] Gets or sets the element at the specified index. The index for the first item in a list is 0. Property Description Capacity Gets or sets the number of elements the list can hold. Count Gets the number of elements in the list. Method Description Add(object) Adds an element to the end of a list and returns the element’s index. Clear() Removes all elements from the list and sets its Count property to zero.
  • 44. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 44 Common methods of the List<> class (continued) Method Description Contains(object) Returns a Boolean value that indicates if the list contains the specified object. Insert(index, object) Inserts an element into a list at the specified index. Remove(object) Removes the first occurrence of the specified object from the list. RemoveAt(index) Removes the element at the specified index of a list. BinarySearch(object) Searches a list for a specified object and returns the index for that object. Sort() Sorts the elements in a list into ascending order.
  • 45. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 45 Code that causes the size of a list of names to be increased List<string> lastNames = new List<string>(3); lastNames.Add("Boehm"); lastNames.Add("Vasquez"); lastNames.Add("Murach"); lastNames.Add("Taylor"); //Capacity is doubled to 6 lastNames.Add("Holland"); lastNames.Add("Steelman"); lastNames.Add("Slivkoff"); //Capacity is doubled to 12
  • 46. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 46 The syntax for retrieving a value from a list listName[index] Code that creates a list that holds decimal values List<decimal> salesTotals = new List<decimal> { 3275.68m, 4398.55m, 5289.75m, 1933.98m }; Code that retrieves the first value from the list decimal sales1 = salesTotals[0]; // sales1 = 3275.68 Code that inserts and removes list elements salesTotals.Insert(0, 2745.73m); // insert a new first element sales1 = salesTotals[0]; // sales1 = 2745.73 decimal sales2 = salesTotals[1]; // sales2 = 3275.68 salesTotals.RemoveAt(1); // remove the second element sales2 = salesTotals[1]; // sales2 = 4398.55
  • 47. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 47 Code that displays the list in a message box string salesTotalsString = ""; foreach (decimal d in salesTotals) salesTotalsString += d + "n"; MessageBox.Show(salesTotalsString, "Sales Totals"); The message box that’s displayed
  • 48. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 48 Code that checks for an element in the list and removes it if it exists decimal x = 2745.73m; if (salesTotals.Contains(x)) salesTotals.Remove(x); Code that sorts and searches the list salesTotals.Sort(); int sales2Index = salesTotals.BinarySearch(sales2); A message box that displays the results of the sort and search operation
  • 49. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 49 Common properties of the SortedList<> class Indexer Description [key] Gets or sets the value of the element with the specified key. Property Description Keys Gets a collection that contains the keys in the list. Values Gets a collection that contains the values in the list. Capacity Gets or sets the number of elements the list can hold. Count Gets the number of elements in the list.
  • 50. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 50 Common methods of the SortedList<> class Method Description Add(key, value) Adds an element with the specified key and value to the sorted list. Clear() Removes all elements from the sorted list. ContainsKey(key) Returns a Boolean value that tells whether the sorted list contains the specified key. ContainsValue(value) Returns a Boolean value that tells whether the sorted list contains the specified value. GetByIndex(index) Gets the value of the element at the specified index. GetKey(index) Gets the key of the element at the specified index. Remove(key) Removes the element with the specified key. RemoveAt(index) Removes the element at the specified index.
  • 51. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 51 Properties of the KeyValuePair<K, V> structure Property Description Key The key for the SortedList item. Value The value associated with the key. Code that creates and loads a sorted list SortedList<string, decimal> salesList = new SortedList<string, decimal>(4); salesList.Add("AdamsA", 3275.68m); salesList.Add("FinkleP", 4398.55m); salesList.Add("LewisJ", 5289.75m); salesList.Add("PotterE", 1933.98m); Another way to create and load the sorted list SortedList<string, decimal> salesList = new SortedList<string, decimal> { { "AdamsA", 3275.68m }, { "FinkleP", 4398.55m }, { "LewisJ", 5289.75m }, { "PotterE", 1933.98m } };
  • 52. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 52 Code that looks up a value in the sorted list based on a key string employeeKey = "LewisJ"; decimal salesTotal = salesList[employeeKey]; Code that converts the sorted list to a tab-delimited string string salesTableString = ""; foreach (KeyValuePair<string, decimal> employeeSalesEntry in salesList) { salesTableString += employeeSalesEntry.Key + "t" + employeeSalesEntry.Value + "n"; } MessageBox.Show( salesTableString, "Employee Sales Totals");
  • 53. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 53 Properties and methods of the Queue<> class Property Description Count Gets the number of items in the queue. Method Description Enqueue(object) Adds the specified object to the end of the queue. Dequeue() Gets the object at the front of the queue and removes it from the queue. Clear() Removes all items from the queue. Peek() Retrieves the next item in the queue without deleting it.
  • 54. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 54 The message box that's displayed Code that uses a queue Queue<string> nameQueue = new Queue<string>(); nameQueue.Enqueue("Boehm"); nameQueue.Enqueue("Vasquez"); nameQueue.Enqueue("Murach"); string nameQueueString = ""; while (nameQueue.Count > 0) nameQueueString += nameQueue.Dequeue() + "n"; MessageBox.Show(nameQueueString, "Queue");
  • 55. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 55 Properties and methods of the Stack<> class Property Description Count Gets the number of items in the stack. Method Description Push(object) Adds the specified object to the top of the stack. Pop() Gets the object at the top of the stack and removes it from the stack. Clear() Removes all items from the stack. Peek() Retrieves the next item in the stack without deleting it.
  • 56. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 56 Code that uses a stack Stack<string> nameStack = new Stack<string>(); nameStack.Push("Boehm"); nameStack.Push("Vasquez"); nameStack.Push("Murach"); string nameStackString = ""; while (nameStack.Count > 0) nameStackString += nameStack.Pop() + "n"; MessageBox.Show(nameStackString, "Stack"); The message box that’s displayed
  • 57. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 57 The syntax for retrieving a value from an array list (type) arrayName[index] Code that creates an array list that holds decimal values decimal[] newSalesTotals = {3275.68m, 4398.55m, 5289.75m, 1933.98m}; ArrayList salesTotals = new ArrayList(); foreach (decimal d in newSalesTotals) salesTotals.Add(d); Another way to create the array list ArrayList salesTotals = new ArrayList { 3275.68m, 4398.55m, 5289.75m, 1933.98m }; Code that retrieves the first value from the array list decimal sales1 = (decimal) salesTotals[0]; // sales1 = 3275.68
  • 58. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 58 Code that inserts and removes an element from the array list // insert a new first element salesTotals.Insert(0, 2745.73m); sales1 = (decimal) salesTotals[0]; // sales1 = 2745.73 decimal sales2 = (decimal) salesTotals[1]; // sales2 = 3275.68 // remove the second element salesTotals.RemoveAt(1); sales2 = (decimal) salesTotals[1]; // sales2 = 4398.55
  • 59. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 59 Code that displays the array list in a message box string salesTotalsString = ""; foreach (decimal d in salesTotals) salesTotalsString += d + "n"; MessageBox.Show(salesTotalsString, "Sales Totals"); The message box that’s displayed
  • 60. Murach’s C# 2010, C8 © 2010, Mike Murach & Associates, Inc.Slide 60 Code that checks for an element in the array list and removes it if it exists decimal x = 2745.73m; if (salesTotals.Contains(x)) salesTotals.Remove(x); Code that sorts and searches the array list salesTotals.Sort(); int sales2Index = salesTotals.BinarySearch(sales2);