Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 11 odgovora
  • 5.758 pregleda

Najnovija ↓

Skidanje duplikata iz liste 16.01.2008. u 21:21 · pre 228 meseci #1
e ovako imam listu tipa NekiObjekt koji sadrzi

Code:
 NekiObjekt  korisnik banka cena 


i sad recimo da imam listu koja je ovakva.

nikola nekabanka 2.00
jovan nekabanka2 2.00
petar nekabanka3 988.99
nikola nekabanka4 2.00

E sad... vidite da imam 2 puta isto ime nikola.

Volio bih da imam novu listu od ove koja ce svaki duplikat izbrisati i tretirati kolone kao jedinstvene. Nije potrebno obracati paznju da li je nikola u relaciji sa nekom bankom1, 2, 3 ili 4. BItno je da imam istu listu samo ako se neka promenjiva ponavlja da se ne pokaze. Da lista na kraju bude

nikola nekabanka 2.00
jovan nekabanka2
petar nekabanka3 988.99
nekabanka4

Kako da ovo uradim?
Re: Skidanje duplikata iz liste 16.01.2008. u 21:56 · pre 228 meseci #2
Da probas sa Dictionary klasom, i kada budes dodavao proveris da li vec postoji taj kljuc, tj. ime korisnika.
Re: Skidanje duplikata iz liste 16.01.2008. u 22:08 · pre 228 meseci #3
Bilo bi lako sa dictionary da ne moram da uradim za svako polje, za svaku kolonu. Npr, ne samo za ime, nego i za banku i za cenu.

Dakle dictionary bi se potrduio da se prvi ne ponavlja ali ne i ostalo.
Re: Skidanje duplikata iz liste 16.01.2008. u 22:21 · pre 228 meseci #4
Aha, je te razumeo da ti je bitno samo da se ime korisnika ne ponavlja :) Cekaj, nije mi jasno, na osnovu cega onda odredjujes da li ce ti podaci da se prikazu ? Recimo da imas: nikola banka1 3.50; dzoni banka2 3.50; dzoni banka1 1.25; nikola banka2 1.25 - sta bi se u ovom slucaju prikazalo ?
Re: Skidanje duplikata iz liste 16.01.2008. u 22:34 · pre 228 meseci #5
Citat:
Predrag Glumac: Aha, je te razumeo da ti je bitno samo da se ime korisnika ne ponavlja :) Cekaj, nije mi jasno, na osnovu cega onda odredjujes da li ce ti podaci da se prikazu ? Recimo da imas: nikola banka1 3.50; dzoni banka2 3.50; dzoni banka1 1.25; nikola banka2 1.25 - sta bi se u ovom slucaju prikazalo ?


Prikazalo bi se..

nikola banka1 3.50;

dzoni banka2 3.50;

dzoni banka1 1.25;

nikola banka2 1.25;

jednom nikola, jednom dzoni, jednom banka1, jednom banka2, jednom 3.50, jednom 1.25.

Ove vrednosti nikako nisu relevantne jedna za drugu i ne moraju biti povezane. Bitno je da dobijem

nikola banka1 3.50; recimo
dzoni banka2 1.25;

i to je to...

mmoze biti i

nikola banka2 3.50; recimo
dzoni banka1 1.25;

ili

dzoni banka2 3.50; recimo
nikola banka1 1.25;


Dakle nije bitno kako, treba da tretiram ovo kao u SQL Distinct, da mi se samo unikatne vrednosti prikaziju..

Re: Skidanje duplikata iz liste 16.01.2008. u 23:08 · pre 228 meseci #6
Ubacis u listu pa izbacis duplikate po jednom kriterijumu, zatim drugom, zatim trecem, ono sto ostane je to sto ti treba :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Skidanje duplikata iz liste 17.01.2008. u 05:36 · pre 228 meseci #7
moze neki primjer... ja sam napisao 3 funckije i nista ne radi. Ne mogu postaviti code posto je od korporacije a potpisao sam da necu postavljati njihov code nigjde...
Re: Skidanje duplikata iz liste 17.01.2008. u 10:38 · pre 228 meseci #8
Trenutno nemam vremena za kod, mozda kasnije danas, pa cu ti za sada pisati sta sam mislio.
Da bi izbacio duplikate, mozes da uradis jednu od sledece dve stvari (nakon sto si objekte ubacio u List(Of TvojaKlasa), ili List<NekaKlasa> u C#):
Prodjes kroz celu listu i za svaki element proveris da li u delu liste od pocetka do trenutne pozicije postoji neki koji ima isto ime, banku ili cenu pa ako ma, trenutni izbacis (obrati paznju na iterator da neki ne bi preskocio).
Ili prvo sortiras listu pa onda prodjes kroz nju i poredis samo susedne. S' tim da to tri puta radis, jednom za ime, jednom za banku i jednom za cenu. Sortiranje mozes izvrsiti tako sto napravis tri comparator funkcije a zatim pozoves List.Sort(TvojComparator) pri cemu prosledis onaj koji sortira kako ti odgovara. Izgleda komplikovano ali nije mnogo :)
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Skidanje duplikata iz liste 17.01.2008. u 18:08 · pre 228 meseci #9
Ajde ako mozes vidi, imam neki deadline u petak, tako da mi je frka, a nikako da skontam, probao sam milion nekih nacina i samo sve vise i vise komplikujem :)
Re: Skidanje duplikata iz liste 17.01.2008. u 21:05 · pre 228 meseci #10
ma nisam htio da se cimam sa ovim da bi mogao da ispucam ovo na stranicu sa gridview, jednostavno sam uzeo kolonu po kolonu i spucao u asp:table i napravio dynamic table i to je to,.. tako sam resio ovaj problem... Ovo sto sam ja pokusao je skoro pa nemoguce...
Re: Skidanje duplikata iz liste 17.01.2008. u 21:55 · pre 228 meseci #11
Sorry, nisam mogao ranije. Na ovo sam mislio (pod uslovom da sam dobro shvatio sta hoces):
Code:

    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e) {
            List<TestClass> data = new List<TestClass>();
            //whatever you do to fill data list
            data.Sort(CompareByName);
            for (int i = 1; i < data.Count; i++) {
                if (data[i].Name == data[i - 1].Name) {
                    data.RemoveAt(i);
                    i--;
                }
            }
            data.Sort(CompareByBank);
            for (int i = 1; i < data.Count; i++) {
                if (data[i].Bank == data[i - 1].Bank) {
                    data.RemoveAt(i);
                    i--;
                }
            }
            data.Sort(CompareByPrice);
            for (int i = 1; i < data.Count; i++) {
                if (data[i].Price == data[i - 1].Price) {
                    data.RemoveAt(i);
                    i--;
                }
            }
        }
        private int CompareByName(TestClass a, TestClass b) {
            return a.Name.CompareTo(b.Name);
        }
        private int CompareByBank(TestClass a, TestClass b) {
            return a.Bank.CompareTo(b.Bank);
        }
        private int CompareByPrice(TestClass a, TestClass b) {
            return a.Price.CompareTo(b.Price);
        }
    }
    public class TestClass {
        public string Name;
        public string Bank;
        public int Price;
    }
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Skidanje duplikata iz liste 18.01.2008. u 20:54 · pre 228 meseci #12
Ne znam da li bi ovo radilo. Meni je potrebna ponovo lista istog formata samo sto bi se eliminisale vrednosti koje se poreklapaju...

Uradio sam sa c# table i sve radi kako treba sad... :) Hvala za pomoc, moram da probam malo da se igram sa ovim kad dodjem kuci sa posla, bas me iznerviralo :)

poz
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme