Skip to main content

Posts

Showing posts with the label StructuralEqualityComparer

Definirea unui mecanism de comparare a entitatiilor din punct de vedere a structurii folosind IStructuralEquatable

Uneori avem nevoie sa putem compara clasele de tip POCO ca pe niste structuri. De exemplu daca avem clasa Student, dorim sa comparam entitatile de acest tip din punct de vedere a datelor pe care le contin. class Student { public string Nume{ get;set;} public string Prenume{ get;set;} public int Varsta{ get;set;} } Pentru acest lucru sa folosim IStructuralEquatable . Aceasta interfata a fost creata pentru a fi folosita in tupluri. In cazul acestora, doua tupluri sunt egale daca fiecare element din tuplu este egal din celalalt tuplu. Interfata contine doua metode: bool Equals(Object other, IEqualityComparer comparer); int GetHashCode(IEqualityComparer comparer); Prin intermediul parametrului comparer se defineste mecanismul de comparare. Exista cateva implementari in .NET pentru IEqualityComparer prin care putem sa comparam siruriile de elemente - element cu element. Valoarea default a acestui parametru este EqualityComparer > Object < .Default.Equals in cazul in care se foloseste...