Что ж, похоже, вы разделяете неправильный символ для заданной строки content
. Вы можете проверить эту скрипку: https://dotnetfiddle.net/Ubklbk
С вашей исходной строкой:
using System;
public class Program
{
public static void Main()
{
int block = 11;
int size = 0;
//string content = "zQzhPeWFXZG:5:3:2tGTGlvmQzTm9UTU91NG9DNndySERrOEsveFpMQ3ExUGlo"; //this key gets normally decrypted with aes but that is not the problem
string content = "zQzhPeWFXZG532tGTGlvmQzTm9UTU91NG9DNndySERrOEsveFpMQ3ExUGlo"; //this key gets normally decrypted with aes but that is not the problem
string[] split =content.Split(':');
foreach(var item in split)
{
Console.WriteLine(item);
}
block = Convert.ToInt32(content.Split(':')[2]);
size = Convert.ToInt32(content.Split(':')[1]);
content = content.Split(':')[0];
Console.WriteLine(block);
Console.WriteLine(size);
Console.WriteLine(content);
}
}
Выход:
zQzhPeWFXZG532tGTGlvmQzTm9UTU91NG9DNndySERrOEsveFpMQ3ExUGlo
Run-time exception (line 16): Index was outside the bounds of the array.
Stack Trace:
[System.IndexOutOfRangeException: Index was outside the bounds of the array.]
at Program.Main() :line 16
В следующем запустил, я добавил :
разделитель в точках, которые возвращали мне ваши типы полей, что дало мне следующий вывод:
zQzhPeWFXZG
5
3
2tGTGlvmQzTm9UTU91NG9DNndySERrOEsveFpMQ3ExUGlo
3
5
zQzhPeWFXZG
Итак, в основном, проблема заключается в том, как вы разбиваете исходную строку с помощью :
разделитель.