分裂时索引错误
本文关键字:错误 索引 分裂 | 更新日期: 2023-09-27 17:50:35
我不确定修复这个问题的最佳方法,在我的代码中:
var correctedUrl = Helpers.CorrectUrl(eLink);
string[] splitAndCheckExtension = correctedUrl.Split('.');
if ((Helpers.returnExtensionsAvailable(splitAndCheckExtension[1].ToString()) == true))
{
这部分:splitAndCheckExtension[1].ToString()
只是一个url扩展(例如.com .net等)。
错误是:索引在数组的边界之外,这只发生在输入错误的url时,例如:http://www.www.intera。
函数代码:
public static bool returnExtensionsAvailable(string extension)
{
string[] ex = new string[] { "com", "com.pl", "net", "org", "pl", "info", "de", "ca", "co.uk", extension};
if (ex.Contains(extension))
{
return true;
} else {
return false;
}
}
我不知道如何修复它
简短的回答是,您应该在使用splitAndCheckExtension[1].ToString()
之前检查splitAndCheckExtension.Length
,因为它可能只包含零个或一个元素,在这种情况下,[1]
在数组的边界之外。
也就是说,使用您提供的示例URL (https://dotnetfiddle.net/Nyu1aq),您的代码似乎工作得很好。如果URL不包含任何.
字符,那么您将得到索引越界异常,如预期的那样。
要解决这个问题,将if
语句更改为如下内容:
if (splitAndCheckExtension.Length > 1 &&
(Helpers.returnExtensionsAvailable(splitAndCheckExtension[1].ToString()) == true))