» »

[C#] IComparer

[C#] IComparer

aljaz92 ::

Eno težavo imam in sicer naloga je da naredim seznam LIST < T >, za katerega potem uporabim IComparer za razvrščanje stvari v listu.

trenutno imam takole sestavljeno nalogo v razredu Destinacije.cs, kjer imam konstruktorje, privzete konstruktorje ter get in set metode za spremenljivke, dodan imam še seznamdestinacij.cs v katerem imam metode za izpis in dodajanje na LIST, ter tretji razred Primerjalnik.cs, v katerem je sledeča koda:

 public class Primerjalnik : IComparer<Destinacije>
    {

        public int Compare(Destinacije x, Destinacije y)
        // Vhod: x,y - niza, ki jih primerjalnik primerja.
        // Vrne: 0, če sta niza enaka; <0, če je x<y; >0, če je x>y. 
        {

            if (x == null)
            {  // x= null:
                if (y == null)
                {
                    // Če je x null in y  null, sta enaka.
                    return 0;
                }
                else
                {
                    // Če je x null in y ni null, je y > x.. 
                    return -1;
                }
            }
            else
            {  // x ni null:
                if (y == null)
                // Če x ni null in je y null, je x > y.
                {
                    return 1;
                }
                else // sicer ...
                {
                    //  ... če ni x niti y null, primerjaj dolžini obeh nizov:
                    int vrni = x.DRUZBA.Length.CompareTo(y.DRUZBA.Length);
                    if (vrni != 0)
                    {
                        // Če niza nista enako dolga, je daljši niz > krajšega.
                        return vrni;
                    }
                    else
                    {
                        // Če sta niza enako dolga, ju razvrsti z običajno metodo za razvrstitev nizov.
                        int vrni1 = x.DRUZBA.CompareTo(y.DRUZBA);
                        return vrni1;
                    }
                }
            }
        }
    
    }


Ko grem čez debug se mi program sesuje v razredu seznadestinacij.cs v metodi za dodajanje, ki pa je napisana takole:
public void DodajDestinacijo(Destinacije NovaDestinacija, Primerjalnik MojPrimerjalnik)
        {
            Destinacija.Sort(MojPrimerjalnik);

            int Lokacija = 0;
            if (Destinacija.Count != 0)
            {
                // poiščemo index za vstavlanje
                Lokacija = Destinacija.BinarySearch(NovaDestinacija, MojPrimerjalnik);
                
            }
            // vstavimo podatke
            Destinacija.Insert(Lokacija, NovaDestinacija);
        }


Program se sesuje ko v seznam dodam več podatkov.

FrEaKmAn ::

kakšen error ti vrne? katera vrstica kode?



Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Iskalno Drevo

Oddelek: Programiranje
132047 (1613) Ciklamen
»

Naloga - programiranje v C#

Oddelek: Šola
8990 (765) Skaty
»

[c#] Vstavljanje vrednosti v tabelo

Oddelek: Programiranje
111598 (1420) Cvenemir
»

[NALOGA] Java: Rekurzija

Oddelek: Programiranje
5950 (764) Spura
»

c# primerjava vrednosti dveh tipov object (brez da vem kateri tip sta)

Oddelek: Programiranje
101092 (879) Looooooka

Več podobnih tem