Ich mache einen Brief Zähler in C#, es kompiliert ok, aber jedes Mal, wenn ich es ausführen, habe ich diesen Fehler "System.IndexOutOfRangeException" on line "if (chars [num] == knizka [num1]) ". Was soll ich bitte tun? IDK, warum ich mehr Text
int num = 0;
int num1 = 0;
string knihaRef = System.IO.File.ReadAllText("Osnova.txt");
knihaRef = knihaRef.ToLower();
string abcd ="abcdefghijklmnopqrstuvwxyz";
abcd = abcd.ToLower();
char[] chars =abcd.ToArray();
char[] knizka = knihaRef.ToArray();
int[] numOfLet =new int[26];
for (int i=0; i<chars.Length;i++)
{
numOfLet[i] = 0;
}
while(num1<knizka.Length)
{
if (chars[num]==knizka[num1])
{
numOfLet[num]++;
num1++;
num++;
if (num>=numOfLet.Length)
{
num = 0;
}
}
else
{
num++;
}
}
[Dies wird dazu beitragen] (http://stackoverflow.com/questions/20940979/what-is-an-indexoutofrangeexception-argumentoutofrangeexception-and-how-do-if) – Dec
Mögliche Duplikat [Was für ein ist IndexOutOfRangeException/ArgumentOutOfRangeException und wie behebe ich es?] (Http://stackoverflow.com/questions/20940979/what-is-andexoutofrangeexception-argumentoutofrangeexception-and-how-do-if) – Kyle
Die 'else' Anweisungen sehen so aus Es ist die Ursache für dein Problem. Es kann dazu führen, dass 'num' auf einen Wert größer als' chars.Length' ansteigt. – Sean