[ laserjat @ 22.01.2009. 16:08 ] @
Kako da pristupim svakom elementu liste arraylist na primer imam:
Code:
clsElemenat objElement=new clsElemenat();
ArrayList objListaObjekata=new ArrayList(); 


Kako sad da u c# pristupim svakom elementu liste ObjListaObjekata i da svaki njegov element stavim u objElement.
Pretpostavljam da to ide kroz for petlju to je u redu, ali kad pokusam ovako
Code:
for(int i=0;i<objListaObjekata.Count-1;i++)
    objElement=objListaObjekata[i];


dobijem gresku: Cannot implicitly convert type 'object' to 'clsElemenat. An explicit conversion exists (are you missing a cast?)

Imam primer za VisualBasic u kome je to odradjeno ovako i tu radi bez greske:
Code:
        For i = 0 To objListaObjekata.Count - 1
            objElement = objListaObjekata.Item(i)
[ dusty @ 22.01.2009. 17:10 ] @
C# koristi eksplicitno kastovanje, dok VB.Net implicitno kastovanje. To ti je i kompajler naveo kao gresku. ArrayList je niz object tipova tako da bi vratio iz tipa object u tip clsElemenat trebao bi da uradis kastovanje objElement = (clsElemenat) objListaObjekata[ i ]; procitaj malo po MSDN-u jer ti je ovo veoma vazna stvar. Takodje, u for petlji uslov za iteracije treba da je i < objListaObjekata.Count ili i <= objListaObjekata.Count-1 u protivnom, kako si napisao, nece nikada videti poslednji element niza.
[ la_bomba @ 22.01.2009. 19:11 ] @
foreach(object elementArrayListe in objListaObjekata)
{
objElement=(clsElemenat)elementArrayListe;
}
[ Marko Medojević @ 22.01.2009. 19:51 ] @
Možeš koristiti i tipizirane liste. U pitanju je List<> klasa i nalazi se u System.Collections.Generic namespace-u. Instanciraš je sledećim kodom:
Code:

List<clsElemenat> nazivListe = new List<clsElemenat>();