2013-07-03 74 views
-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); 
     } 
    } 
} 
+1

确定videoArr的每一行都有一个值? –

+3

[欢迎使用stackoverflow,请考虑阅读** SO Tour **。它会引导你如何最好地使用这个网站](http://stackoverflow.com/about) – Prix

+1

可能只是一个videoArr的项目,它不包含','所以'info [1]'不存在。 –

回答

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()); 
... 
+0

thx ..求助。我没有清楚地检查它。 –

3

您正在用逗号分割,并且该字符串可能不包含逗号,因此info [1]不在此处。

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