コード例 #1
0
ファイル: Page.cs プロジェクト: pwdlugosz/Spectre
 /// <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);
     }
 }
コード例 #2
0
ファイル: Page.cs プロジェクト: pwdlugosz/Spectre
        /// <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);
        }
コード例 #3
0
ファイル: Page.cs プロジェクト: pwdlugosz/Spectre
        /// <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());
        }
コード例 #4
0
ファイル: Page.cs プロジェクト: pwdlugosz/Spectre
        /// <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);
        }
コード例 #5
0
ファイル: Page.cs プロジェクト: pwdlugosz/Spectre
        /// <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);
        }
コード例 #6
0
ファイル: Page.cs プロジェクト: pwdlugosz/Spectre
 /// <summary>
 /// Deletes the last record satisfying a condition
 /// </summary>
 /// <param name="Filter"></param>
 public void DeleteLast(IRecordSeeker Filter)
 {
     this.Delete(this.SeekLast(Filter));
 }
コード例 #7
0
ファイル: Page.cs プロジェクト: pwdlugosz/Spectre
 /// <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)));
 }