new public void Insert(int index, IndexOrderField val) {
			if (this._index != null) {
				val.SetIndex(this._index);
			}
			if ( this.Contains(val) ) {
				this.Remove(val);
			}
			this.Insert(index, val);
		}
		new public int Add(IndexOrderField val) {
			if (this._index != null) {
				val.SetIndex(this._index);
			}
			if ( !this.Contains(val) ) {
				return base.Add(val);
			}
			return -1;
		}
		public static IList GetFields(IndexOrderField sender) 
		{
			ArrayList list = new ArrayList();

			foreach (IndexField field in sender.Index.Fields)
			{
				list.Add(field.Name);
			}

			// Sort List
			list.Sort(0, list.Count, null);

			return list;
		}