/// <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); }
/// <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); }
/// <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); } }