public class LetterArray
{
internal static string[] Alphabet() {
var letterValues = new string[25];
letterValues[0] = "A";
letterValues[1] = "B";
letterValues[2] = "C";
letterValues[3] = "D";
letterValues[4] = "E";
letterValues[5] = "F";
letterValues[6] = "G";
letterValues[7] = "H";
letterValues[8] = "I";
letterValues[9] = "J";
letterValues[10] = "K";
letterValues[11] = "L";
letterValues[12] = "M";
letterValues[13] = "N";
letterValues[14] = "O";
letterValues[15] = "P";
letterValues[16] = "Q";
letterValues[17] = "R";
letterValues[18] = "S";
letterValues[19] = "T";
letterValues[20] = "U";
letterValues[21] = "V";
letterValues[22] = "W";
letterValues[23] = "X";
letterValues[24] = "Y";
letterValues[25] = "Z";
return letterValues;
}
}
public class Decipher
{
public static void Main() //Main method
{
int res = 34;
string[] letterValues = LetterArray.Alphabet();
//Create for loop that runs through every possible shift value
for (int shift = 0; shift <= 25; shift++) {
Console.WriteLine("\nShift Value = " + shift + ": ");
// For each character in the text file
foreach (var ch in ReadText.cipherTxt()) {
if (ch == ' ') {
} else {
for (int i = 0; i <= 25; i++) {
if ((ch.ToString().ToUpper()) == letterValues[i]) {
res = i;
}
}
if (shift > res) {
Console.WriteLine(letterValues[26 - (shift - res)][0]);
} else {
Console.WriteLine(letterValues[res - shift][0]);
}
}
}
}
}
System.IndexOutOfRangeException
: Индекс находился вне границ массива.System.IndexOutOfRangeException: Индекс находился вне границ массива - C#
Не знаю, почему это происходит, я пробовал просмотреть код, чтобы найти вещи, перечисленные вне диапазона массива, но ничего не видящего? Я надеялся, что кто-то сможет просветить меня на том, что я делаю неправильно, или как я могу сортировать эту ошибку. Он говорит, что это происходит где-то в LetterArray.Alphabet и Decipher.Main.
'вар letterValues = новая строка [ 25]; '--->' var letterValues = новая строка [26]; 'Голосование закрывается как опечатка. – dasblinkenlight
Вы пытаетесь поместить 26 элементов в массив, который может содержать только 25 элементов. Первые 25 работ, а последнее, естественно, выходит за рамки –