protected IDynamicObj RemoveObjKey(int key) { if (!Has(key)) { return(null); } if (m_bIsUpdating) { DCEntity entity = m_cEntityPool.GetObject(); entity.Init(key); entity.state = DCState.ToRemove; m_lstOperateEntity.Add(entity); for (int i = 0; i < m_lstEntity.Count; i++) { if (m_lstEntity[i].Key == key) { m_lstEntity[i].state = DCState.ToRemove; return(m_lstEntity[i].obj); } } for (int i = 0; i < m_lstOperateEntity.Count; i++) { if (m_lstOperateEntity[i].Key == key && m_lstOperateEntity[i].obj != null) { return(m_lstOperateEntity[i].obj); } } } else { for (int i = m_lstEntity.Count - 1; i > -1; i--) { if (m_lstEntity[i].Key == key) { var entity = m_lstEntity[i]; m_lstEntity.RemoveAt(i); var entityObj = entity.obj; m_cEntityPool.SaveObject(entity); return(entityObj); } } } return(null); }
protected bool AddObj(IDynamicObj obj, object param = null) { if (Has(obj.key)) { return(false); } DCEntity entity = m_cEntityPool.GetObject(); entity.Init(obj, param); if (m_bIsUpdating) { entity.state = DCState.ToAdd; m_lstOperateEntity.Add(entity); } else { entity.state = DCState.ToDoAction; m_lstEntity.Add(entity); } return(true); }
protected bool RemoveObj(IDynamicObj obj) { if (!Has(obj.key)) { return(false); } if (m_bIsUpdating) { DCEntity entity = m_cEntityPool.GetObject(); entity.Init(obj); entity.state = DCState.ToRemove; m_lstOperateEntity.Add(entity); for (int i = 0; i < m_lstEntity.Count; i++) { if (m_lstEntity[i].Key == obj.key) { m_lstEntity[i].state = DCState.ToRemove; } } } else { for (int i = m_lstEntity.Count - 1; i > -1; i--) { if (m_lstEntity[i].Key == obj.key) { var entity = m_lstEntity[i]; m_lstEntity.RemoveAt(i); var entityObj = entity.obj; m_cEntityPool.SaveObject(entity); break; } } } return(true); }