У меня есть класс и реализует IEquatable
:
public class MyObject: IEquatable<MyObject>
{
public string Name { get; set; }
public bool Equals(MyObject other)
{
if (other == null)
return false;
return this.Name.Equals(other.Name);
}
public override bool Equals(object o)
{
if (ReferenceEquals(null, o)) return false;
if (ReferenceEquals(this, o)) return true;
if (o.GetType() != GetType()) return false;
return Equals(o as MyObject);
}
public override int GetHashCode()
{
unchecked
{
int hash = 29;
hash = hash * 31 + Name != null ? Name.GetHashCode() : 0;
return hash;
}
}
}
Для краткости примера я просто сохранил свойство Name
.У класса есть и другие свойства.
Теперь у меня есть 2 списка (A, B) из MyObject
, и я хочу получить список элементов, которые находятся в A, но отсутствуют в B.
Как я могу сделать это, используя LINQ (предпочтительно) и убедившись, что используется IEquatable
(или равно)?