C# Hogyan lehet létrehozni egy változót, amelynek neve egy már meglévő string változóban szerepel?
pl:
string nev = "film";
int [változónév=film];
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Egy leegyszerűsített változatot kérdeztem.
Köszönöm a válaszod!
Az feladatom hanoslóbb ehhez:
Film film1 = new Film("SpongyaBob");
Ha a felhasználótól új filmcímet kérek, akkor bővítse a Film osztályt film2 névvel.
Film [film2] = new Film("Felhasználó által megadott cím");
Előző kommentem bővítve:
Úgy gondoltam felveszek egy számláló változót, amit hozzáteszek a film után:
int i;
string nev = "film"+i.Tostring()
Film [nev] = new Film("Felhasználó által megadott cím");
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Ehhez én Dictionary-t használnék, ahol a kulcs a "változó neve", míg az értéke az osztály egy példánya.
Ugyanakkor nem értem, hogy mire kell ez neked. Film címét inkább magában a példányban tárolnám, nem pedig a rá mutató referencia nevében.
Úgy érted:
Film[] film = new Film[2];
int számláló = 0;
film[számláló++] = new Film("Spongyabob");
film[számláló++] = new Film("Felhasználó által megadott cím");
Nem rossz, de ennek véges a mérete.
Persze tehetném akkor láncolt listában, de nekem méghasonlóbb ahhoz a feladatom, hogy:
Film film1 = new Film("SpongyaBob");
Lista<Film> lista = new Lista<Film>();
És Film osztályt már nem tudom hogy betenni a láncolt listába, ha az is láncolt lista.
Ezért lenne jobb a változónév változtatós forma.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Nem tudom, hogy #6-ost kinek írtad, de azért válaszolok.
A List class NEM láncolt listaként kerül megvalósításra, hanem egy tömböt alkalmaz a háttérben. Ha kevésnek bizonyul a tömb mérete, akkor egy újat (dupla akkora mérettel) hoz helyette létre. Magyarán működik a következő:
List<Film> filmLista=new List<Film>(10); // Érdemes kezdeti kapacitást megadni, ha be tudod lőni, kb mennyi elemet akarsz tárolni
Film film = new Film("Valami filmcím");
_filmLista.Add(film);
Természetesen listákat is lehet a listában tárolni.
List<List<Film>> listCeption = new List<List<Film>>();
List<Film> filmList1 = new List<Film>(1);
Film film1 = new Film("Filmcím");
filmList1.Add(film1);
listCeption.Add(filmList1);
Köszönöm válaszod!
A leírásodból azt vettem ki hogy, megoldásom lehet:
List<Film> filmLista = new List<Film>;
filmLista.Add(new Film("SpongyaBob");
filmLista.Add(new Film(Console.ReadLine());
Ez jónak tűnik!
Ha létre szeretnék hozni egy másik listát:
Lista2<Film> filmLista2 = new Lista2<Film>
ugyanúgy fogja tartalmazni az előzőleg létrehozott (new Film("SpongyaBob) és new Film(Console.ReadLine()) példányokat?
Előző kérdésem átírom:
A Film osztály tartalmazza-e magában azokat a létrehozott példányokat, és ha igen hogyan hivatkozok rá, hogy megadhassam máshol is?
(Mivel nincs példánynevük, csak new Film(..) lettek létrehozva.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
Ha egy új listát hozol létre, akkor az csak akkor fogja tartalmazni egy másik lista elemeit, ha azt paraméterül adod a konstruktornak. Azaz:
List<Film> list1 = new List<Film>();
list1.Add(new Film("Blabla"));
List<Film> list2 = new List<Film>(); // list2 üres lesz.
List<Film> list3 = new List<Film>(lista1); // list3 tartalmazza list1 elemeit is.
"A Film osztály tartalmazza-e magában azokat a létrehozott példányokat..."
A Film osztály nem tartalmaz semmit. Egészen pontosan lehetnek osztályszintű változók, de azokat ugye neked kell megadnod, mint ahogy a példány változóit is...
Talán egyszerűbb lenne, ha leírnád, mit szeretnél csinálni. Nem ilyen "alacsony szinten", hogy A osztály tartalmazza B elemeket, hanem hogy konkrétan mit akarsz tárolni, milyen műveleteket akarsz rajtuk végrehajtani. Ne haragudj, de úgy tűnik számomra, hogy neked az OO alapokkal vannak gondjaid, nem csak a nyelvvel...
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!