List<T>.Contains,list里存放的类要进行比较,实际上是对对象中某个属性的比较,这事需要重写T的Equals, 当然T只是个占位符。 public bool Equals(T t) { return this.某个属性.Equals(t.某个属性); } public override bool Equals(object obj) { if (obj is T) return this.Equals((T)obj); return base.Equals(obj); }