2015-04-26 14 views
5

Kiedy biegnę ten kod, Dostaję błądBłąd: Indeks był poza granice tablicy

Index was outside the bounds of the array.

for (var i = 9; i + 2 < lines.Length; i += 3) 
     { 
      Items.Add(new ItemProperties { 
       Item = lines[i], 
       Description = lines[i + 1], 
       Quantity = lines[i + 2], 
       UnitPrice = lines[i + 3] 

      }); 
     } 

Czy ktoś może mi pomóc, proszę?

+1

Cóż, jaka jest długość tablicy ? Czy na pewno miałeś na myśli 'var i = 9'? –

+0

Tak, ponieważ istnieją inne, które używają 'var i' = 1- 8 –

+0

Ok, jaka jest całkowita długość twojej tablicy? Czy jesteś pewien, że 'i + 3' nie będzie poza granicami twojej długości tablicy? –

Odpowiedz

4

Używasz lines[i + 3] w pętli, ale czek gwarantuje jedynie, że i + 2 jest w zasięgu - a fakt, że używasz wartości w pętli zamiast 4 sprawia, że ​​wyglądają jak powinno to prawdopodobnie :

for (var i = 12; i + 3 < lines.Length; i += 4) 
{ 
    Items.Add(new ItemProperties { 
     Item = lines[i], 
     Description = lines[i + 1], 
     Quantity = lines[i + 2], 
     UnitPrice = lines[i + 3] 
    }); 
} 

(zakładając chcesz rozpocząć na 4. pozycji, jak poprzednio - należy sprawdzić, co chcesz wartość początkowa i być.)

+0

Dziękuję bardzo, to rozwiązało problem. –

Powiązane problemy