-4
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);
        }
    }
}
4

2 回答 2

4

问题是您假设文件中的每一行都至少有一个逗号:

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());
...
于 2013-07-03T16:22:49.893 回答
3

您用逗号分隔,字符串可能不包含逗号,因此 info[1] 不存在。

向我们展示 videoinfo 的价值。如果它包含say "test, test2",那就没问题了。当你用逗号分割时,你会得到位置 [0] 和 [1]。

于 2013-07-03T16:22:29.687 回答