C# 继续获取System.IndexAutoFrangeException:&x27;索引超出了数组的界限;

C# 继续获取System.IndexAutoFrangeException:&x27;索引超出了数组的界限;,c#,C#,我正在尝试编写一个代码,该代码进入网页并输入文本,我对其进行了编码,但当我加载所需文本并单击“开始”时,我得到了一个System.IndexOutOfRangeException:“索引超出了数组的边界。” 错误这是我的密码: for (int index = 0; index < this.Messages.Count; index = checked(index + 1)) { string[] str = this.Messag

我正在尝试编写一个代码,该代码进入网页并输入文本,我对其进行了编码,但当我加载所需文本并单击“开始”时,我得到了一个System.IndexOutOfRangeException:“索引超出了数组的边界。” 错误这是我的密码:

        for (int index = 0; index < this.Messages.Count; index = checked(index + 1))
        {
            string[] str = this.Messages[index].Split(new char[]
            {
                ':'
            });

            using (HttpRequest req = new HttpRequest()) // am using xNet here and below
            {
                req.UserAgent = Http.ChromeUserAgent();
                req.Cookies = new CookieDictionary(false);
                req.Proxy = null;
                req.IgnoreProtocolErrors = true;
                req.AddParam("message-user", str[0]);
                req.AddParam("message-wall", str[1]); //this is where the error occurs
for(int index=0;index

有人能帮我解决这个问题吗?谢谢。

如果任何消息不包含冒号,就会发生这种情况。您需要检查数组的长度,即

req.AddParam("message-wall", str.Length > 1 ? str[1] : String.Empty);

您应该检查是否有“:”字符。如果您的邮件[index]没有“:”字符,则在数组中只能得到一个字符串。
看一看这个示例测试,可以随意分叉/修改它:

您的代码缺少一些文本您的代码似乎假设
str
的长度为2,但情况并非总是如此。简单的错误。