collections.cs

来自「没的 没的 没的 没的 没的 没的 没的 没的 没的 没的 没的 没的 没的 没」· CS 代码 · 共 139 行

CS
139
字号
//// assembly:	System// namespace:	System.Text.RegularExpressions// file:	collections.cs//// author:	Dan Lewis (dlewis@gmx.co.uk)// 		(c) 2002using System;using System.Collections;namespace System.Text.RegularExpressions {	public abstract class RegexCollectionBase : ICollection, IEnumerable {		public int Count {			get { return list.Count; }		}		public bool IsReadOnly {			get { return true; }	// FIXME		}		public bool IsSynchronized {			get { return false; }	// FIXME		}		public object SyncRoot {			get { return list; }	// FIXME		}		public void CopyTo (Array array, int index) {			foreach (Object o in list) {				if (index > array.Length)					break;								array.SetValue (o, index ++);			}		}		public IEnumerator GetEnumerator () {			return new Enumerator (list);		}		// internal methods		internal RegexCollectionBase () {			list = new ArrayList ();		}		internal void Add (Object o) {			list.Add (o);		}		internal void Reverse () {			list.Reverse ();		}		// IEnumerator implementation		private class Enumerator : IEnumerator {			public Enumerator (IList list) {				this.list = list;				Reset ();			}			public object Current {				get {					if (ptr >= list.Count)						throw new InvalidOperationException ();					return list[ptr];				}			}			public bool MoveNext () {				if (ptr > list.Count)					throw new InvalidOperationException ();								return ++ ptr < list.Count;			}			public void Reset () {				ptr = -1;			}			private IList list;			private int ptr;		}		// protected fields		protected ArrayList list;	}	[Serializable]	public class CaptureCollection : RegexCollectionBase, ICollection, IEnumerable {		public Capture this[int i] {			get { return (Capture)list[i]; }		}		internal CaptureCollection () {		}	}	[Serializable]	public class GroupCollection : RegexCollectionBase, ICollection, IEnumerable {		public Group this[int i] {			get { return (Group)list[i]; }		}				public Group this[string groupName] {			get {				foreach (object o in list) {					if (!(o is Match))						continue;					int index = ((Match) o).Regex.GroupNumberFromName (groupName);					if (index != -1)						return this [index];				}				return null;			}		}				internal GroupCollection () {		}	}	[Serializable]	public class MatchCollection : RegexCollectionBase, ICollection, IEnumerable {		public virtual Match this[int i] {			get { return (Match)list[i]; }		}		internal MatchCollection () {		}	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?