[ Mikelly @ 11.09.2008. 14:19 ] @
Poceh da radim neku malu aplikaciju, citam podatke iz .csv fajla pa trpam u dataset pa onda u bazu, ali jos bazu nisam napravio, tek sam poceo. Sad imam konkretan problem. Imam dataset koji sadrzi odredjen broj redova, i treba mi da iz citave tabele izvucem samo neke vrijednosti koje se ne ponavljaju. Kao npr. u SQL-u "SELECT DISTINCT UserName FROM Tabela". Da li to mogu da odradim koriscenjem datatable objekta? Probao sam Select() i Compute() metodama, ali mi ne ide... Ne znam ni da li to uopste moze... Moze naravno pjeske da prolazim kroz zapise jedan po jedan. Ali sam onda krenuo na drugi nacin, i tu mi se otvorise pitanja. Napravio sam listu zapisa: Code: List<DataSet1.DataRow> = new List<DataSet1.DataRow>(); pa sam probao koriscenjem Exist() metode koja zahtijeva predikat. Prvo pitanje: Predikat mora da ima samo jedan argument i taj agument mora biti onog tipa kojeg je i lista? Ne moze imati dodatne argumente? Je li tako? Drugo pitanje: Da li predikat mora biti static? Takva je definicija u helpu. Ako je static, onda ne mogu da vrsim promjenljiva uporedjivanja tako da koristim exist() metodu unutar petlje, i u svakoj iteraciji vrsim drugacije uporedjivanje, jer u okviru predikta ako je static ne mogu bez da koristim standardno uporedjivanje. Evo, mozda bude jasnije. Prvo sa static: Code: private bool static ImaLiGa(DataSet1.DataRow r) { if(r.UserName == "Milos") return true; else return false; } E sad bez static, ali ne znam da li ovo moze, oce li pravit kakve probleme: Code: private bool ImaLiGa(DataSet1.DataRow r) { if(r.UserName == user) return true; else return false; } gdje je user promjenljiva iz viseg nivoa koju mijenjam u svakoj iteraciji, pa je vidljiva u prediktu, to ne bi bio slucaj da je predikat static. Da li je ovaj runaround korektan, i da li postoji neko drugo rjesenje (ovo u vezi predikata)? I neki komentari u vezi listi, ako mozete, teh ih otkrivam... Pozdrav. |