// // This file contains the C# code from Program 7.7 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_07.txt // public class OrderedListAsArray : AbstractSearchableContainer, OrderedList { protected ComparableObject[] array; protected class MyCursor : Cursor { private OrderedListAsArray list; private int offset; internal MyCursor(OrderedListAsArray list, int offset) { this.list = list; this.offset = offset; } public ComparableObject Datum { get { if (offset < 0 || offset >= list.count) throw new IndexOutOfRangeException(); return list.array[offset]; } } // ... } // ... }