c# - 拆分 - 索引超出数组范围

标签 c# split

我使用以下代码拆分字符串并存储它:

string[] proxyAdrs = linesProxy[i].Split(':');
string proxyServer = proxyAdrs[0];
int proxyPort = Convert.ToInt32(proxyAdrs[1]);


if(proxyAdrs[2] != null)
{
    item.Username = proxyAdrs[2];
}

if (proxyAdrs[3] != null)
{
    item.Password = proxyAdrs[3];
}

问题是我得到了

Index was outside the bounds of the array.

proxyAdrs[2] 不存在时。

有时 proxyAdrs[2] 存在,有时不存在。

我该如何解决这个问题?

最佳答案

只需检查 if 语句中返回的数组的长度

if( proxyAdrs.Length > 2 &&  proxyAdrs[2] != null)
    {
        item.Username = proxyAdrs[2];
    }

你得到异常的原因是拆分返回的数组大小小于你正在访问的索引。如果您要访问数组元素 2,则数组中必须至少有 3 元素,因为数组索引以 0

开头

关于c# - 拆分 - 索引超出数组范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13581182/

相关文章:

c# - 避免 LINQ to SQL 中的 2100 个参数限制

java - 如何分割这个字符串

java - 如何按字符串的最后一点拆分?

regex - 在 Perl 中选择性地拆分字符串

c# - 是否可以向异常添加错误代码?

c# - 没有返回的异步任务是否需要在 ASP.NET 请求结束之前完成

c# - VSTS 版本 : roles keep recycling because they can't locate valid DLLs

c# - 已成功与服务器建立连接,但在登录过程中出现错误。目标主体名称不正确

php - 将大文件分成两半

javascript split() 函数 - 每个字符串末尾的幽灵字符