C#如何为泛型添加不重复项
?
为泛型添加不重复的项关键是要覆盖强类型的项(对象所属类)里的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 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);
}
?
本文链接:http://www.fetso.cn/article/171.html,转载请保留。