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:
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:
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:
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.