15 Ekim 2017 Pazar

IComparable Arayüzü

Giriş
Bu arayüz sort işlemi için kullanılır. Şöyle yaparız.
List<Foo> list = new List<Foo> ();

list.Add(new Foo (...));
...
// Uses IComparable.CompareTo()
list.Sort();
Tanımlama
Şöyle yaparız.
class Foo : IComparable<Foo>
{
  ...
  public int CompareTo (Foo right)
  {
    ...
  }
}
CompareTo metodu
İmzası şöyle. Soldaki nesne büyükse 1, eşitse 0 küçükse 0 döner.
public int CompareTo (Foo right);
Örnek
Şöyle yaparız.
public int CompareTo(Foo foo)
{
  if (object.ReferenceEquals(this, foo))
    return 0;
  else if (foo == null)
    // Protect against null inputs.
    return -1;

  var cmp = this.f1.CompareTo(foo.f1);
  if (cmp != 0)
    return cmp;

  cmp = this.f2.CompareTo(foo.f2);
  if (cmp != 0)
    return cmp;

  // Compare additional members as required

  return 0;
}

Hiç yorum yok:

Yorum Gönder