C# - Problem z sortowaniem listy
Witam mam problem.
Otóż mam oto taką klasę:
[code]class DaneOsobowe
{
private string Imie;
public string imie
{
get { return Imie; }
set { imie = value; }
}
private string Nazwisko;
public string nazwisko
{
get { return Nazwisko; }
set { nazwisko = value; }
}
private string Zawód;
public string zawód
{
get { return Zawód; }
set { zawód = value; }
}
private int Pensja;
public int pensja
{
get { return Pensja; }
set { pensja = value; }
}
public DaneOsobowe(string imie, string nazwisko, string zawód, int pensja)
{
Imie = imie;
Nazwisko = nazwisko;
Zawód = zawód;
Pensja = pensja;
}
}
[/code]
W głównym programie tworzę sobię listę składającą się z obiektów:
[code] List lista = new List();[/code]
Co należy zrobić żeby można było posegregować listę po nazwisku, zawodzie i pensji osobno, tak żeby użytkownik mógł wybrać po czym ma sortować
P.S.
Program piszę w Microsoft Visual Studio 2008 jeśli to jest ważne.
Odpowiedzi: 1
Napisz sobie wlasna funkcje porownujaca obie klasy, np:
[code]int CompareByName(DaneOsobowe A, DaneOsobowe B)
{
return A.Imie.CompareTo(B.Imie);
}[/code]
nastepnie sortujesz tak: lista.Sort(new Comparison(CompareByName));
analogicznie tworzysz pozostale funkcje porownujace, zwracana wartosc interpretowana jest nastepujaco:
1) wieksza od 0: pierwszy parametr jest 'wiekszy' od drugiego
2) mniejsza od 0: pierwszy parametr jest 'mniejszy' od drugiego
3) 0: parametry sa sobie rowne
Strona 1 / 1