索引超出了数组的范围
问题描述:
btnImport()
{
GetVideoLists();
}
public static void GetVideoLists(string listFile)
{
videoList = new List<videoInfo>();
string[] videoArr = File.ReadAllLines(listFile);
foreach (string videoInfo in videoArr)
{
string[] info = videoInfo.Split(new char[] { ',' });
// here i get error
videoInfo tempInfo = new videoInfo(info[0].Trim(), info[1].Trim());
if (CheckVideoUrl(tempInfo.videoUrl))
{
videoList.Add(tempInfo);
}
}
}
答
的问题是,你认为每线在你的文件中有至少一个逗号:
string[] info = videoInfo.Split(new char[] { ',' });
videoInfo tempInfo = new videoInfo(info[0].Trim(), info[1].Trim());
如果在videoInfo
没有逗号这将失败。为了解决这个问题,使用方法:
string[] info = videoInfo.Split(new char[] { ',' });
if (info.Length >= 1)
{
videoInfo tempInfo = new videoInfo(info[0].Trim(), info[1].Trim());
...
}
或者
string[] info = videoInfo.Split(new char[] { ',' });
if (info.Length < 1)
continue;
videoInfo tempInfo = new videoInfo(info[0].Trim(), info[1].Trim());
...
+0
thx ..求助。我没有清楚地检查它。 –
答
您正在用逗号分割,并且该字符串可能不包含逗号,因此info [1]不在此处。
向我们展示videoinfo的价值。如果它包含说"test, test2"
那么它会没事的。当你用逗号分割时,你会得到位置[0]和[1]。
确定videoArr的每一行都有一个值? –
[欢迎使用stackoverflow,请考虑阅读** SO Tour **。它会引导你如何最好地使用这个网站](http://stackoverflow.com/about) – Prix
可能只是一个videoArr的项目,它不包含','所以'info [1]'不存在。 –