カスタムタイプのインターフェイスを実装している場合は、ContainsをカスタムIEquatableで使用できます。特定のタイプに共通のIEquatableインターフェースを実装することができます。どちらも、idとして使用できる一意のint値を持っています。この場合、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
}
もう1つのオプションは、両方のタイプ間に直接等式を実装することです。あれは :
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
}