Avatar billede trenskow Nybegynder
09. maj 2005 - 13:21 Der er 2 kommentarer og
1 løsning

Sortering efter datetime

Hejsa
Jeg har rodet lidt med noget kode til at sortere en ArrayListe efter TimeDate.

Jeg har en klasse om hedder Tourney, hvor jeg har en metode som hedder returnDateTime().

Her er så min "compare" kode.

private class TourneyComparer : IComparer
{
    public int Compare(object o1, object o2)
    {
        return ((((Tourney)o1).returnDateTime() - ((Tourney)o2).returnDateTime()));
    }
}

Jeg skal have lavet returnet om til int...
for jeg får denne fejl
Cannot implicitly convert type 'System.TimeSpan' to 'int'

og hvis jeg laver det om til
public System.Timespam Compare(object o1, object o2)

så får jeg at vide, at jeg ikke har implementeret IComparer
Avatar billede burningice Nybegynder
09. maj 2005 - 13:34 #1
altså... din compare-metode skal returnere negativt, 0 eller positivt alt efter om o1 var mindre, lig eller større end o2.

Så må ikke du kan gøre dette:

private class TourneyComparer : IComparer
{
    public int Compare(object o1, object o2)
    {
        DateTime dt1 = ((Tourney)o1).returnDateTime();
        DateTime dt2 = ((Tourney)o2).returnDateTime();

        return DateTime.Compare(dt1, dt2);
    }
}
Avatar billede trenskow Nybegynder
09. maj 2005 - 13:37 #2
Sørme jow.. den compilede det uden problemer, så skal vi ikke regne med at det også virker run-time... der er point til dig fessor :-)
Avatar billede burningice Nybegynder
09. maj 2005 - 13:52 #3
svar :)

du kan evt. køre noget NUnit testing for at se om det giver det korrekte output.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester