2 // System.Text.RegularExpressions.MatchCollection
5 // Dan Lewis (dlewis@gmx.co.uk)
6 // Dick Porter (dick@ximian.com)
9 // (C) 2004 Novell, Inc.
13 using System.Collections;
15 namespace System.Text.RegularExpressions
18 public class MatchCollection: ICollection, IEnumerable
20 private ArrayList list;
22 /* No public constructor */
23 internal MatchCollection () {
24 list = new ArrayList ();
27 public virtual int Count {
33 public bool IsReadOnly {
39 public virtual bool IsSynchronized {
45 public Match this[int i] {
49 throw new ArgumentOutOfRangeException ("Index is out of range");
52 return((Match)list[i]);
56 public virtual object SyncRoot {
62 public virtual void CopyTo (Array array, int index) {
63 foreach (object o in list) {
64 if (index > array.Length) {
68 array.SetValue (o, index++);
72 public virtual IEnumerator GetEnumerator () {
73 return(new Enumerator (list));
76 internal void Add (object o) {
80 internal void Reverse () {
84 private class Enumerator: IEnumerator {
88 public Enumerator (IList list) {
93 public object Current {
95 if (ptr >= list.Count) {
96 throw new InvalidOperationException ();
103 public bool MoveNext () {
104 if (ptr > list.Count) {
105 throw new InvalidOperationException ();
108 return(++ptr < list.Count);
111 public void Reset () {