Exemplo n.º 1
0
        /// <summary>
        /// 指定のエレメントが下に移動できるかチェックする処理
        /// </summary>
        /// <param name="clElem">エレメント</param>
        /// <returns>移動可能フラグ</returns>
        public bool CanMoveDown(ClsDatElem clElem)
        {
            if (clElem == null)
            {
                return(false);
            }
            if (this.mListElem == null)
            {
                return(false);
            }
            if (this.mListElem.Count <= 0)
            {
                return(false);
            }

            int inHashCode1 = clElem.GetHashCode();

            ClsDatElem clElemEnd   = this.mListElem[this.mListElem.Count - 1] as ClsDatElem;
            int        inHashCode2 = clElemEnd.GetHashCode();

            if (inHashCode1 == inHashCode2)
            {
                return(false);
            }

            return(true);
        }
Exemplo n.º 2
0
        /// <summary>
        /// エレメント検索処理
        /// </summary>
        /// <param name="clElem">エレメント</param>
        /// <returns>インデックス</returns>
        public int FindIndexFromElem(ClsDatElem clElem)
        {
            int inHashCode1 = clElem.GetHashCode();

            int inCnt, inMax = this.mListElem.Count;

            for (inCnt = 0; inCnt < inMax; inCnt++)
            {
                ClsDatElem clElemTmp   = this.mListElem[inCnt];
                int        inHashCode2 = clElemTmp.GetHashCode();
                if (inHashCode1 == inHashCode2)
                {
                    return(inCnt);
                }
            }

            return(-1);
        }
Exemplo n.º 3
0
        /// <summary>
        /// ハッシュコードからエレメントを削除する処理
        /// ※これを読んだ後は ClsDatMotion.RefreshLineNo を呼んで行番号を割り振りなおさなければならない
        /// (ClsDatElemと重複しているので、いづれ継承でまとめる)
        /// </summary>
        /// <param name="inHashCode">ハッシュコード</param>
        /// <param name="isRemove">実体削除フラグ</param>
        public void RemoveElemFromHashCode(int inHashCode, bool isRemove)
        {
            int inCnt, inMax = this.mListElem.Count;

            for (inCnt = 0; inCnt < inMax; inCnt++)
            {
                ClsDatElem clElem        = this.mListElem[inCnt];
                int        inHashCodeTmp = clElem.GetHashCode();
                if (inHashCode == inHashCodeTmp)
                {
                    if (isRemove)
                    {
                        clElem.RemoveAll();
                    }

                    this.mListElem.RemoveAt(inCnt);
                    return;
                }

                clElem.RemoveElemFromHashCode(inHashCode, isRemove);
            }
        }