日期:2014-05-17  浏览次数:20891 次

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,转载请保留。