Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Skidanje duplikata iz liste

[es] :: .NET :: Skidanje duplikata iz liste

[ Pregleda: 3491 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

01011011

Član broj: 561
Poruke: 2341
*.ms.com.



+2 Profil

icon Skidanje duplikata iz liste16.01.2008. u 20:21 - pre 198 meseci
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?
 
Odgovor na temu

Predrag Glumac
Luxembourg

Član broj: 167588
Poruke: 127
*.eunet.yu.



Profil

icon Re: Skidanje duplikata iz liste16.01.2008. u 20:56 - pre 198 meseci
Da probas sa Dictionary klasom, i kada budes dodavao proveris da li vec postoji taj kljuc, tj. ime korisnika.
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.ms.com.



+2 Profil

icon Re: Skidanje duplikata iz liste16.01.2008. u 21:08 - pre 198 meseci
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.
 
Odgovor na temu

Predrag Glumac
Luxembourg

Član broj: 167588
Poruke: 127
*.eunet.yu.



Profil

icon Re: Skidanje duplikata iz liste16.01.2008. u 21:21 - pre 198 meseci
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 ?
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.ms.com.



+2 Profil

icon Re: Skidanje duplikata iz liste16.01.2008. u 21:34 - pre 198 meseci
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..

 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Skidanje duplikata iz liste16.01.2008. u 22:08 - pre 198 meseci
Ubacis u listu pa izbacis duplikate po jednom kriterijumu, zatim drugom, zatim trecem, ono sto ostane je to sto ti treba :)
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
71.239.153.*



+2 Profil

icon Re: Skidanje duplikata iz liste17.01.2008. u 04:36 - pre 198 meseci
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...
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Skidanje duplikata iz liste17.01.2008. u 09:38 - pre 198 meseci
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 :)
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.ms.com.



+2 Profil

icon Re: Skidanje duplikata iz liste17.01.2008. u 17:08 - pre 198 meseci
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 :)
 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.ms.com.



+2 Profil

icon Re: Skidanje duplikata iz liste17.01.2008. u 20:05 - pre 198 meseci
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...
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: Skidanje duplikata iz liste17.01.2008. u 20:55 - pre 198 meseci
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;
    }

 
Odgovor na temu

01011011

Član broj: 561
Poruke: 2341
*.ms.com.



+2 Profil

icon Re: Skidanje duplikata iz liste18.01.2008. u 19:54 - pre 198 meseci
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
 
Odgovor na temu

[es] :: .NET :: Skidanje duplikata iz liste

[ Pregleda: 3491 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.