如果您已经为您的自定义类型实现了接口,那么 Contains 可以与自定义 IEquatable 一起使用。您可以为特定类型实现一个通用的 IEquatable 接口,例如。它们都有一个唯一的int 值,可以用作 id。在这种情况下,您可以使用 IEquatable ,并在实现主体中:
class MyType1 : IEquatable<int>
bool IEqutabale<int>.Equals(int other)
{
if (Id == other) return true;
return false;
}
那么您可以进行如下比较:
if (Type1List.Cast<IEquatable<int>>().Contains(type2Obj.Id)
{
//write your code here
}
您的另一个选择是在两种类型之间实现直接平等。那是 :
class MyType1 : IEquatable<MyType2>
bool IEquatable<MyType2>.IEquals(MyType2 other)
{
//write equality logic here
}
然后可以进行如下比较:
if(Type1List.Cast<IEquatable<MyType2>>().Contains(type2Object))
{
//write your code here
}