Hogyan oldhatom meg C#-ban, hogy egy tömb elemeit while ciklussal töltsem fel?
A forráskód említett része:
StreamReader sr = new StreamReader("tavok.txt");
string[] tavok;
string sor = sr.ReadLine();
int szam = 0;
while (sor != null)
{
tavok[szam] = sor;
szam++;
}
sr.Close();
Amint látható, be szeretnék olvasni egy fájlt, és a fájl egyes sorait a 'tavok' tömb egy-egy elemeként szeretném tárolni. Viszont azt a hibaüzenetet kapom, a while cikluson belüli 'tavok'-ra, hogy "unassigned local variable", tehát a forráskód szerinti út nem igazán járható. Mit tegyek?
megvan, nincs példányosítva a tömb, nincs neki mérete meg hasonlók.
A helyes megfejtés:
public static string[] ReadDistances(string fname)
{
using (StreamReader rdr = new StreamReader(fname)) {
List<string> distances = new List<string>();
string ln;
while ((ln = rdr.ReadLine()) != null)
distances.Add(ln);
return distances.ToArray();
}
}
Házi feladat: elemezd a forrást!
Ez az egyik érettségi feladat.
Érdemes struct-ot használni,majd azt a fájlolvasásnál a struct publikus property-eibe bele dobálni. Majd egy példányosított List<T>-be beledobni.
Előny : nem a tömbökkel,vagy azok dimenzióival babrálsz,hanem LINQ-ben könnyebb. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, 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!