"범위를 벗어난 인덱스"오류가있는 코드 fi_get[1, 4]
에 내 코드가 걸려 있습니다.다차원 배열이 범위를 벗어났습니다.
lines
var은 문자열 목록 배열이며 런타임에는 600 줄 넘는 텍스트가 포함되어 있습니다. 나는 왜 문자열 값을 [1,4]
에 할당 할 수 없는지 모르겠다. 값을 [1,0]
및 [1,1]
및 [1,2]
및 [1,3]
에 할당합니다.
string[,] fi_get = new string[2, 11];
if (lines[i].Contains("show fabric-interconnect firmware"))
{
fi_get[0, 0] = Regex.Replace(lines[i + 2], @".+Running-Kern-Vers:\s(.+)", "$1");
fi_get[0, 1] = Regex.Replace(lines[i + 3], @".+Running-Sys-Vers:\s(.+)", "$1");
fi_get[0, 2] = Regex.Replace(lines[i + 4], @".+Startup-Kern-Vers:\s(.+)", "$1");
fi_get[0, 3] = Regex.Replace(lines[i + 5], @".+Startup-Sys-Vers:\s(.+)", "$1");
fi_get[1, 0] = Regex.Replace(lines[i + 7], @".+Running-Kern-Vers:\s(.+)", "$1");
fi_get[1, 1] = Regex.Replace(lines[i + 8], @".+Running-Sys-Vers:\s(.+)", "$1");
fi_get[1, 2] = Regex.Replace(lines[i + 9], @".+Startup-Kern-Vers:\s(.+)", "$1");
fi_get[1, 3] = Regex.Replace(lines[i + 10], @".+Startup-Sys-Vers:\s(.+)", "$1");
}
if (lines[i].Contains("show fabric-interconnect inventory expand detail"))
{
fi_get[0, 4] = Regex.Replace(lines[i + 2], @".+Product Name:\s(.+)", "$1");
fi_get[0, 5] = Regex.Replace(lines[i + 3], @".+PID:\s(.+)", "$1");
fi_get[0, 6] = Regex.Replace(lines[i + 4], @".+Serial (SN):\s(.+)", "$1");
fi_get[0, 7] = Regex.Replace(lines[i + 7], @".+Description:\s(.+)", "$1");
fi_get[0, 8] = Regex.Replace(lines[i + 10], @".+Serial (SN):\s(.+)", "$1");
fi_get[0, 9] = Regex.Replace(lines[i + 13], @".+Product Name:\s(.+)", "$1");
fi_get[0, 10] = Regex.Replace(lines[i + 14], @".+PID:\s(.+)", "$1");
fi_get[0, 11] = Regex.Replace(lines[i + 15], @".+Serial (SN):\s(.+)", "$1");
fi_get[1, 4] = Regex.Replace(lines[i + 29], @".+Product Name:\s(.+)", "$1");
fi_get[1, 5] = Regex.Replace(lines[i + 30], @".+PID:\s(.+)", "$1");
fi_get[1, 6] = Regex.Replace(lines[i + 31], @".+Serial (SN):\s(.+)", "$1");
fi_get[1, 7] = Regex.Replace(lines[i + 34], @".+Description:\s(.+)", "$1");
fi_get[1, 8] = Regex.Replace(lines[i + 37], @".+Serial (SN):\s(.+)", "$1");
fi_get[1, 9] = Regex.Replace(lines[i + 40], @".+Product Name:\s(.+)", "$1");
fi_get[1, 10] = Regex.Replace(lines[i + 41], @".+PID:\s(.+)", "$1");
fi_get[1, 11] = Regex.Replace(lines[i + 42], @".+Serial (SN):\s(.+)", "$1");
}
배열 값을 설정하거나 행 [i + 29]을 (를) 설정하는 것이 과장 되었습니까? –
두 개의 배열이 있습니다. [i + 29] 행이 유효한 요소인지 확실합니까? –