You need the number of occurrences of one
type of object contained in an `ArrayList`

. The
`ArrayList`

contains methods, such as
`Contains`

and
`BinarySearch`

to
find a single item. Unfortunately, these methods cannot find all
duplicated items at one time—essentially, there is no
*count all* functionality. If you want to find
multiple items, you need to implement your own routine.

The following class inherits from the `ArrayList`

class in order to extend its functionality. Two methods are added to
return the number of times a particular object appears in a sorted
and an unsorted
`ArrayList`

:

using System; using System.Collections; public class ArrayListEx : ArrayList { // Count the number of times an item appears in this // unsorted or sorted ArrayList public int CountAll(object searchValue) { int foundCounter = 0; for (int index = 0; index < this.Count; index++) { if (this[index].Equals(searchValue)) { foundCounter++; } } return (foundCounter); } // Count the number of times an item appears in this sorted ArrayList public int BinarySearchCountAll(object searchValue) { // Sort ArrayList this.Sort( ); bool done = false; int count = 0; // Search for first item int center = this.BinarySearch(searchValue); int left = center - 1; int right = center + 1; int position = -1; if (center >= 0) { // Increment counter for found item ++count; // Search to the left do { if (left < 0) { done = true; } else { if (this[left].Equals(searchValue)) ...

Start Free Trial

No credit card required