IEqualityComparer (https://msdn.microsoft.com/en-us/library/ms132151(v=vs.110).aspx) je interfejs koji definiše metode za upoređivanje objekta. Možemo implementirati IEqualityComparer komparer za Dictionary kolekcije.
Equals metod je metod koji upoređuje vrednost 2 objekta. Ako su vrednosti objekata jednake vraća true, u suportnom vraća false.

 
GetHashCode (https://msdn.microsoft.com/en-us/library/system.object.gethashcode(v=vs.110).aspx) je metod koji vraća integer hash kod za prosleđen objekat. Hash kod u stvari predstavlja memorijsku adresu objekta. Ako su hash vrednosti objekata iste onda će sam komparer vratiti vrednost true. Hash kod bi trebalo da bude jedinstven do kraja životnog veka objekta. Zbog toga polja kojima se kalkulišu hash vrednosti moraju biti Immutable.

 
Primer generisanja komparer klase:

 

public class CustomerComparer : IEqualityComparer<Customer>
 {
public bool Equals(Customer customer1, Customer customer2)
{
    return customer1.Id == customer2.Id;
}
public int GetHashCode(Customer customer)
{
    return customer.Id.GetHashCode();
}
}

 

Milena Tošović

Senior Developer

0 replies

Leave a Reply

Want to join the discussion?
Feel free to contribute!

Leave a Reply

Your email address will not be published. Required fields are marked *