// // This file contains the C# code from Program 7.6 of // "Data Structures and Algorithms // with Object-Oriented Design Patterns in C#" // by Bruno R. Preiss. // // Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng. All rights reserved. // // http://www.brpreiss.com/books/opus6/programs/pgm07_06.txt // public class OrderedListAsArray : AbstractSearchableContainer, OrderedList { protected ComparableObject[] array; public override void Withdraw(ComparableObject obj) { if (count == 0) throw new ContainerEmptyException(); int i = 0; while (i < count && (object)array[i] != (object)obj) ++i; if (i == count) throw new ArgumentException("object not found"); for ( ; i < count - 1; ++i) array[i] = array[i + 1]; array[i] = null; --count; } // ... }