为泛型添加不重复的项关键是要覆盖强类型的项(对象所属类)里的Equals(object obj)方法。可参见以下代码:
1、定义一个类
[Serializable]
public class NameAndId
{
private long id;
private string name;
public long Id
{
get { return id; }
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public class NameAndId
{
private long id;
private string name;
public long Id
{
get { return id; }
set { id = value; }
}
public string Name
{
get { return name; }
set { name = value; }
}
public override bool Equals(object obj)
{
if (this.Id == ((NameAndId)obj).Id)
{
return true;
}
else
{
return false;
}
}
public override int GetHashCode()
{
return base.GetHashCode();
}
}
2、调用(代码片段)
List<NameAndId> list = new List<NameAndId>();
NameAndId nameAndId = null;
//在下面的代码里设置你要添加的项,一般都是使用循环语句实现的
//nameAndId = new NameAndId();
if (!list.Contains(nameAndId))
{
list.Add(nameAndId);
}
NameAndId nameAndId = null;
//在下面的代码里设置你要添加的项,一般都是使用循环语句实现的
//nameAndId = new NameAndId();
if (!list.Contains(nameAndId))
{
list.Add(nameAndId);
}
本文链接:http://www.fetso.cn/article/171.html,转载请保留。