C#/vb.net高手进来看一个linq去集合的差集的问题,运行结果和预期不一样。
2个回答
展开全部
实现有问题。在这里,C不需要实现 IEquatable<C>, 因为Except方法默认情况下调用的是 object 的 Equals 方法,而不是这个接口的方法。C改成如下内容即可:
public class C
{
public string S;
public override bool Equals(object other)
{
if(other==null)return false;
if(other.GetType()!=GetType())return false;
if(other==this)return true;
return ((C)other).S.Equals(S);
}
public override int GetHashCode()
{
return S.GetHashCode();
}
}
另外GetHashCode重写是一个建议,不是必须的,所以不会出错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询