// // This file contains the C# code from Program 7.8 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_08.txt // public class OrderedListAsArray : AbstractSearchableContainer, OrderedList { protected ComparableObject[] array; public virtual Cursor FindPosition(ComparableObject obj) { int i = 0; while (i < count && array[i] != obj) ++i; return new MyCursor(this, i); } public ComparableObject this[int offset] { get { if (offset < 0 || offset >= count) throw new IndexOutOfRangeException(); return array[offset]; } } // ... }