Permalänk

Egenskaper från ArrayList c#

Hej! Jag har en arraylist som jag har placerat objekt i. Varje objekt ska motsvara ett kort i en korlek. De innehåller alltså en char med valör, en int med värdet och en string med en sökväg till bilden. Jag vill sedan slumpa att ett kort dras. Detta ska göras genom att jag slumpar ett tal mellan 1 och 52. Detta tal blir sedan indexnummret som jag använder för att söka i min arraylist. Problemet är bara att jag inte vet hur jag härifrån ska kunna få fram informationen som finns lagrad i objektet. Exempelvis: Talet 34 slumpas. 34 sätts in i arraylisten som index och objektet i fråga tas fram. Hur ska jag göra för att få exempelvis en bildsökväg ur detta?

Jag misstänker att det kan vara ett problem att alla objekt har samma namn (kort) eftersom dessa genereras genom en for-sats. Det fungerar inte att skriva:

pictureBox1.Image = Image.FromFile(kortlek[slumpatTal].SökvägBild);

Tack på förhand!

Permalänk
Medlem

Detta borde fungera.

pictureBox1.Image = Image.FromFile(((DittKlassnamn)kortlek[slumpatTal]).SökvägBild);

Byt ut DittKlassnamn mot vad ditt kortobjekt heter.

Permalänk
Medlem
Skrivet av erjosefsson:

Hej! Jag har en arraylist som jag har placerat objekt i. Varje objekt ska motsvara ett kort i en korlek. De innehåller alltså en char med valör, en int med värdet och en string med en sökväg till bilden. Jag vill sedan slumpa att ett kort dras. Detta ska göras genom att jag slumpar ett tal mellan 1 och 52. Detta tal blir sedan indexnummret som jag använder för att söka i min arraylist. Problemet är bara att jag inte vet hur jag härifrån ska kunna få fram informationen som finns lagrad i objektet. Exempelvis: Talet 34 slumpas. 34 sätts in i arraylisten som index och objektet i fråga tas fram. Hur ska jag göra för att få exempelvis en bildsökväg ur detta?

Jag misstänker att det kan vara ett problem att alla objekt har samma namn (kort) eftersom dessa genereras genom en for-sats. Det fungerar inte att skriva:

pictureBox1.Image = Image.FromFile(kortlek[slumpatTal].SökvägBild);

Tack på förhand!

Antar att din arraylist redan innerhåller dina skapade kortobjekt?
Sedan vill du slumpa fram en index mellan 0-51.
Sen vet jag inte om dina objektvariabler är privata eller publika, annars måste du skapa en metod för att komma åt dina variabler om dessa är privata.

Visa signatur

Corsair 16GB (4x4096MB) CL9 1600Mhz | Asus P8Z77-V PRO |
Samsung SSD Basic 830-Series 256GB | Intel Core i7 3770K 3,5Ghz |
Asus Xonar Essence STX | Noctua NH-U9B SE2 | Antec Performance One P280 | Corsair HX 850W 80+ Gold Modulär | MSI GTX 770

Permalänk
Medlem
Skrivet av erjosefsson:

Hej! Jag har en arraylist som jag har placerat objekt i. Varje objekt ska motsvara ett kort i en korlek. De innehåller alltså en char med valör, en int med värdet och en string med en sökväg till bilden. Jag vill sedan slumpa att ett kort dras. Detta ska göras genom att jag slumpar ett tal mellan 1 och 52. Detta tal blir sedan indexnummret som jag använder för att söka i min arraylist. Problemet är bara att jag inte vet hur jag härifrån ska kunna få fram informationen som finns lagrad i objektet. Exempelvis: Talet 34 slumpas. 34 sätts in i arraylisten som index och objektet i fråga tas fram. Hur ska jag göra för att få exempelvis en bildsökväg ur detta?

Jag misstänker att det kan vara ett problem att alla objekt har samma namn (kort) eftersom dessa genereras genom en for-sats. Det fungerar inte att skriva:

pictureBox1.Image = Image.FromFile(kortlek[slumpatTal].SökvägBild);

Tack på förhand!

Du bör egentligen inte använda en ArrayList utan en List<Kort>, vilket utläses List of Kort. Termen är generics och innebär att datatypen, i detta exempelfall List, behandlar en annan datatyp. Genom att använda generiska datatyper behöver du inte casta elementen till rätt datatyp vid användande.

Visa signatur

Kom-pa-TI-bilitet

Permalänk
Skrivet av jonke:

Detta borde fungera.

pictureBox1.Image = Image.FromFile(((DittKlassnamn)kortlek[slumpatTal]).SökvägBild);

Byt ut DittKlassnamn mot vad ditt kortobjekt heter.

Tack, det funkade jättebra!

Skrivet av NoPaiN^:

Antar att din arraylist redan innerhåller dina skapade kortobjekt?
Sedan vill du slumpa fram en index mellan 0-51.
Sen vet jag inte om dina objektvariabler är privata eller publika, annars måste du skapa en metod för att komma åt dina variabler om dessa är privata.

tack för svaret. Svaret innan fungerade dock så jag krånglar inte till det mer än jag behöver.

Skrivet av Teknocide:

Du bör egentligen inte använda en ArrayList utan en List<Kort>, vilket utläses List of Kort. Termen är generics och innebär att datatypen, i detta exempelfall List, behandlar en annan datatyp. Genom att använda generiska datatyper behöver du inte casta elementen till rätt datatyp vid användande.

Tack för svaret. Första svaret löste det dock.

Permalänk
Avstängd
Skrivet av erjosefsson:

Tack för svaret. Första svaret löste det dock.

Ja, genom att slå i skruven med en hammare

Visa signatur
Permalänk
Medlem
Skrivet av CyberVillain:

Ja, genom att slå i skruven med en hammare

Haha ja!

ArrayList borde bannlysas, det känns ju urgammalt. Snart kommer väl folk fråga om Hashtables!

Permalänk
Medlem
Skrivet av Ernesto:

Haha ja!

ArrayList borde bannlysas, det känns ju urgammalt. Snart kommer väl folk fråga om Hashtables!

Eller immutable collections! ..oh wait.

Visa signatur

Kom-pa-TI-bilitet