Avatar billede swamboo Seniormester
03. februar 2008 - 13:17 Der er 8 kommentarer

Sotere list

Hejsa. Jeg bygger følgende:
            ListViewItem item;
            foreach(District district in congregation.GetDistrictList())
            {
                   
                        item = new ListViewItem(district.DistrictNo.ToString(), 2);
                        item.SubItems.Add(district.Text.Replace("\r\n", ","));
                        item.SubItems.Add(district.Area);
                        (der er en del linier her som jeg ikke har sendt med!)
                        lst_district.Items.Add(item);

DistrictNo leverer et tal mellem 1 og 400.
Er det muligt at få sorteret denne liste, så de står i nummerorden?
Avatar billede nielle Nybegynder
03. februar 2008 - 13:33 #1
Hvorfor ikke lave dn sortering i GetDistrictList() ?
Avatar billede wisen Nybegynder
04. februar 2008 - 11:14 #2
Nu skriver du ikke noget om hvad GetDistrictList returnerer - men givet at det f.eks. er en List, kan du kalde Sort(). Det kræver at det der ligger i listen implementerer interfacet IComparable. Alternativt kan du implementere en IComparer, som du sender med som argument til Sort().

/Jan
Avatar billede swamboo Seniormester
04. februar 2008 - 22:43 #3
Hej igen.
Noget af det der skrives falder mig lidt svært. Jeg sidder og laver ændringer i et program en anden har lavet - jeg har fået projektet da han er gået over til linux.
Men jeg får mine data fra et arraylist, men jeg har bare ikke helt fattet hvordan jeg sortere i det. Jeg havde troet at man kunne bruge listwiew og så sortere efter udskrift som i f.eks. excel. Men den går åbenbart ikk.

Men "feltet" i listen som der gerne skulle sorteres efter hedder long districtNo - kan det hjælpe??
Avatar billede nielle Nybegynder
04. februar 2008 - 22:47 #4
Kan du ikke lige vise os:

1) Hvordan District-klassen er defineret.

2) Hvordan GetDistrictList() funktionen ser ud.
Avatar billede swamboo Seniormester
04. februar 2008 - 23:04 #5
1)
        public District(long districtNo,string text,string area,int noOfVisits,DateTime lastWalkThough,DistrictType type,DistrictStatus status)
        {
            this.districtNo=districtNo;
            this.text=text;
            this.area=area;
            this.noOfVisits=noOfVisits;
            this.lastWalkThrough=lastWalkThough;
            this.type=type;
            this.status=status;
        }
2)        public ArrayList GetDistrictList()
        {
         
            return districts;
        }
Avatar billede wisen Nybegynder
05. februar 2008 - 08:35 #6
Du skal lave noget i denne stil...

public class District : IComparable
{
    private long districtNo;

    public District( long districtNo )
    {
        this.districtNo = districtNo;
    }

    public long DistrictNo
    {
        get { return districtNo; }
        set { districtNo = value; }
    }

    public int CompareTo( object obj )
    {
        if( !(obj is District) )
            throw new ArgumentException( "object is not a Temperature" );

        return this.DistrictNo.CompareTo( ( (District)obj ).DistrictNo );
    }
}

public void DoStuff()
{
    ArrayList list = new ArrayList();
    list.Add( new District( 3 ) );
    list.Add( new District( 2 ) );
    list.Add( new District( 1 ) );
    list.Add( new District( 0 ) );

    list.Sort();
}
Avatar billede nielle Nybegynder
18. februar 2008 - 18:02 #7
Er du kommet vidre med denne her?
Avatar billede swamboo Seniormester
02. november 2010 - 23:28 #8
NEJ - projektet er lukket. Kan i ikke for oprydningens skyld sende et svar inden for 14 dage som tak for hjælpen.
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