C# HIBA ! " Index was outside the bounds of the array "

C# HIBA ! " Index was outside the bounds of the array "
2020-02-11T08:20:57+01:00
2020-02-11T10:30:07+01:00
2022-10-15T21:16:38+02:00
Voyboy1
Sziasztok! 

Beleütköztem egy olyan problémába, hogy van egy főprogramom, amin belül hozzá férek 3 db osztály adataihoz ( Beolvasok egy csv filet), terv szerint működött minden, mindaddig amíg le nem futott a program és beleütköztem a  "System.IndexOutOfRangeException: 'Index was outside the bounds of the array.' " gondba. Amiatt fordultam hozzátok, hogy ez a probléma miként előzhető meg? Sajnos nem igen van jártasságom a C#-ban még, mivel nemrég kezdtem el tanulni az egyetemen.



Kód Részlet : 

FileStream folyam = new FileStream(@"C:\Users\ABC\Desktop\hivatkoz.txt", FileMode.Open, FileAccess.Read); StreamReader olvas = new StreamReader(folyam); //Fejléc string header = olvas.ReadLine(); while (!olvas.EndOfStream) { // Console.WriteLine(olvas.ReadLine()); string[] values = olvas.ReadLine().Split(','); Elsohivatkozas temp = new Elsohivatkozas(values[0], values[1], values[2], Convert.ToDouble(values[3]), values[4], values[5]); hivatkozas.Add(temp); } olvas.Close(); folyam.Close();
Ebből a programon belül van 3db mindegyik osztálynak egy, előtte egy új lista létrehozás  : 
List<Elsohivatkozas> hivatkozas = new List<Elsohivatkozas>();
Utána pedig 3db foreach(var item in hivatkozas) cw kiíratás.

Osztály tartalmaz public stringeket/double-t és intet , ezt próbáltam korrigálni a Convert.To() segítségével a fentiekben.
Mutasd a teljes hozzászólást!
Ha tippelni kell, akkor a

Elsohivatkozas temp = new Elsohivatkozas(values[0], values[1], values[2], Convert.ToDouble(values[3]), values[4], values[5]);
sorban lesz a hiba. Nem létező tömb elemre próbálsz hivatkozni, vagyis a csv fájlban létezhetnek olyan sorok, amelyekben nincs annyi elem. A fenti sor előtt ellenőrizném, hogy van-e annyi eleme a tömbnek

if (values.Length() >= 6){ Elsohivatkozas temp = new Elsohivatkozas(values[0], values[1], values[2], Convert.ToDouble(values[3]), values[4], values[5]); }
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd