2011-10-07 41 views
0
string cstring = e.Result; 
      string[] delim = {"<br>","*"}; 
      string[] cstringl = cstring.Split(delim, StringSplitOptions.None); 
      for (int i = 0; i < cstringl.Length; i++) 
      { 
       country_picker.Items.Add(cstringl[i]); 
      } 

我正在使用上面提到的代碼來添加名爲country picker的列表框中的項目,但是我得到了indexoutofrange異常。爲什麼我得到這個錯誤,當我檢查了使用我的長度< = cstring1.Length在listpicker中添加項..錯誤

+0

它在try catch上工作...但是很少有項目丟失 –

+0

錯誤發生在哪條線上?是否有任何事件掛鉤到ListPicker? –

回答

2

我看到2代碼與您的代碼。

更新它如下:

for (int i = 0; i < cstringl.Length; i++) 
{ 
    country_picker.Items.Add(cstringl[i]); 
} 

的2度的變化是:

  1. 在for循環的對比是「小於」的長度,而不是「小於或等於「因爲這將通過oe錯誤觸發off,因爲Length是count,但是數組是零索引。這是您的IndexOutOfRangeException的第四個原因。

  2. 添加項目時使用循環變量作爲索引引用。所以你不會得到相同的(第一個)項目多次添加。

更新
說完看着你的代碼再次,另一個可能的問題可能是由theinitial的e.result值造成的。嘗試使用StringSplitOptions.RemoveEmptyEntries,以免冒險嘗試輸入空值。還要添加一個檢查cstringl至少包含一個項目。

+0

由於編輯我已經使用了我的參考,並不足以取代小於等於..錯誤仍然存​​在..但仍然存在索引超出範圍錯誤。 –

+0

你確定嗎?因爲<應該夠了。你做了重新編譯? – RvdK

+0

是的,我做了重新編譯。 –