2013-07-03 109 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]。