/// <summary> /// Deletes all the records satisfying a condition /// </summary> /// <param name="Filter"></param> public void DeleteAll(IRecordSeeker Filter) { int[] idx = this.Seek(Filter); foreach (int i in idx) { this.Delete(i); } }
/// <summary> /// Finds all records satisfying a condition /// </summary> /// <param name="Filter"></param> /// <returns></returns> public IEnumerable <Record> SelectAll(IRecordSeeker Filter) { int[] idx = this.Seek(Filter); List <Record> elements = new List <Record>(); foreach (int i in idx) { elements.Add(this.Select(i)); } return(elements); }
/// <summary> /// Finds all records in the page satisfying a condition /// </summary> /// <param name="Filter"></param> /// <returns></returns> public virtual int[] Seek(IRecordSeeker Filter) { List <int> idx = new List <int>(); for (int i = 0; i < this.Count; i++) { if (Filter.Equals(this._Elements[i])) { idx.Add(i); } } return(idx.ToArray()); }
/// <summary> /// Finds the last record in the page satisfying a condition /// </summary> /// <param name="Filter"></param> /// <returns></returns> public virtual int SeekLast(IRecordSeeker Filter) { int idx = this.Count - 1; while (idx >= 0) { if (Filter.Equals(this._Elements[idx])) { return(idx); } idx--; } return(Page.NULL_INDEX); }
/// <summary> /// Finds the first record in the page satisfying a condition /// </summary> /// <param name="Filter"></param> /// <returns></returns> public virtual int SeekFirst(IRecordSeeker Filter) { int idx = 0; while (idx < this.Count) { if (Filter.Equals(this._Elements[idx])) { return(idx); } idx++; } return(Page.NULL_INDEX); }
/// <summary> /// Deletes the last record satisfying a condition /// </summary> /// <param name="Filter"></param> public void DeleteLast(IRecordSeeker Filter) { this.Delete(this.SeekLast(Filter)); }
/// <summary> /// Finds the last record satisfying a condition /// </summary> /// <param name="Filter"></param> /// <returns></returns> public Record SelectLast(IRecordSeeker Filter) { return(this.Select(this.SeekLast(Filter))); }