Üç alana sahip bir kişi sınıfım var, Başlık, İsim, Cinsiyet ve Önce Başlığa göre sıralamak için Özel Sıralama, ardından Ad ve ardından Cinsiyete göre artan:Özel Sıralama (Üç alanda IComparer)
public class SortPerson : IComparer
{
public int Compare(object x, object y)
{
(…)
}
}
Ben karşılaştırmak için tek değişken için bunun nasıl biliyorum: Ama nasıl üçe ile devam etmek zorunda kalacak?
public class SortPerson : IComparer
{
int IComparer.Compare(object a, object b)
{
Person p1=(Person)a;
Person p2=(Person)b;
if (p1.Title > p2.Title)
return 1;
if (p1.Title < p2.Title)
return -1;
else
return 0;
}
}
Birçok sayesinde
Ne yapmalısınız? Bir alan doğal olarak daha önemli olmalı, doğru mu? Sonra bir başkası? Ve son olarak ne oldu? Yani ilk alanı karşılaştırın. Bu sonuç 0 ise, o zaman ikinci karşılaştırın. Bu sonuç 0 ise, üçüncü karşılaştırın. Sonucu döndür. Bunu bir yönteme çevir ve bir başlangıç yap. Ardından, refactor. –