11 Nisan 2017 Salı

IComparer Arayüzü

Giriş
Bu arayüz büyükten küçüğe ya da küçükten büyüğe doğru sıralama yapan veri yapıları (SortedSet vb.) tarafından kullanılır.
Örnek
Elimizde şöyle bir sınıf olsun.
public class Employee 
{
  public string Name { get; set; }
  public int Age { get; set; }
}
Arayüzü gerçekleştirmek için şöyle yaparız.
public class EmployeeComparer : IComparer<Employee>
{
  ...
}
Örnek
Şöyle yaparız.
public class CustomSort : IComparer<string>
{
  public int Compare(string a, string b)
  {
    ...
  }
}
Compare metodu
Şöyle yaparız.
public int Compare(Employee x, Employee y)
{
  return string.Compare(x.Name, y.Name);
}
null değerlerini de dikkate alarak şöyle yaparız.
public int Compare(string a, string b)
{
  if (a == null)
  {
    return b == null ? 0 : -1;
  }

  if (b == null)
  {
    return 1;
  }
  ...
}






Hiç yorum yok:

Yorum Gönder