在一个索引器类中集合类中,为控制add方法,中不加入重复项(ID)。使用了Hashtable。
private Hashtable iDHash=new Hashtable();
/***添加item***/#region/***添加item***/
/**//// <summary>
/// 添加item类
/// </summary>
/// <param name="newItem">新Item类</param>
public void Add(Item newItem)
{
int id=newItem.B.ID; //(B为newItem 的一个属性类)
if(this.iDHash.Contains(id))
{
return;
}
else
{
this.iDHash.Add(id,"");
List.Add(newItem);
}
}
#endregion
/**//// <summary>
/// 添加item类
/// </summary>
/// <param name="newItem">新Item类</param>
public void Add(Item newItem)
{
int id=newItem.B.ID; //(B为newItem 的一个属性类)
if(this.iDHash.Contains(id))
{
return;
}
else
{
this.iDHash.Add(id,"");
List.Add(newItem);
}
}
#endregion
/***移除Item***/#region/***移除Item***/
/**//// <summary>
/// 移除Item类
/// </summary>
/// <param name="oldItem">待移除的Item类</param>
public void Remove(Item oldItem)//移除类对象重载函数
{
if(oldItem!=null)
{
int id=oldItem.B.ID;
this.iDHash.Remove(id);
List.Remove(oldItem);
}
}
#endregion
/**//// <summary>
/// 移除Item类
/// </summary>
/// <param name="oldItem">待移除的Item类</param>
public void Remove(Item oldItem)//移除类对象重载函数
{
if(oldItem!=null)
{
int id=oldItem.B.ID;
this.iDHash.Remove(id);
List.Remove(oldItem);
}
}
#endregion
/***移除Item***/#region/***移除Item***/
// /// <summary>
// /// 移除Item类
// /// </summary>
// /// <param name="index">待移除的index</param>
public void Remove(int index) //移除类对象重载函数
{
// 如果Item不存在,显示提示 messagebox
if (index > Count - 1 || index < 0)
{
return;
}
else
{
Item oldItem=(Item)this[index];
int id=oldItem.B.ID;
this.iDHash.Remove(id);
List.RemoveAt(index);
}
}
#endregion
// /// <summary>
// /// 移除Item类
// /// </summary>
// /// <param name="index">待移除的index</param>
public void Remove(int index) //移除类对象重载函数
{
// 如果Item不存在,显示提示 messagebox
if (index > Count - 1 || index < 0)
{
return;
}
else
{
Item oldItem=(Item)this[index];
int id=oldItem.B.ID;
this.iDHash.Remove(id);
List.RemoveAt(index);
}
}
#endregion