2011-10-07 5 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.Lengthlistpicker ..에 항목을 추가하십시오.

+0

try catch에서 작동하지만 누락 된 항목이 거의 없습니다. –

+0

오류가 발생한 행은 무엇입니까? ListPicker에 연결된 이벤트가 있습니까? –

답변

2

코드에 2 가지 문제점이 있음을 알 수 있습니다.

업데이트로 아래에 :

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

2 명 개의 변경은 :

  1. for 루프에서을 비교 한이되도록 길이 "미만"없음 "보다 작거나 같음 "이것은 길이가 카운트가되지만 배열이 0 인 색인으로 인해 oe 오류로 인해 발생합니다. 이것은 IndexOutOfRangeException의 원인입니다.

  2. 루프 변수를 항목을 추가 할 때 인덱스 참조로 사용합니다. 따라서 동일한 (첫 번째) 항목을 여러 번 추가하지 않아도됩니다.

업데이트

이 다시 코드를보고하는 데, 다른 가능한 문제는 e.result의 theinitial 값에 의해 발생할 수 있습니다. StringSplitOptions.RemoveEmptyEntries을 사용해보십시오. 그러면 빈 값을 입력 할 위험이 없습니다. cstringl에 적어도 하나 이상의 항목이 포함되어 있는지 확인하십시오.

+0

편집 한대로 나는 refrence를 위해 i를 사용했고 less보다 적은 수의 ..보다 적은 수의 오류가 계속 발생하지만 여전히 범위를 벗어난 인덱스의 오류가 있습니다. –

+0

정말요? 왜냐하면 <충분해야하기 때문입니다. 당신은 재 컴파일을 했습니까? – RvdK

+0

예 다시 컴파일했습니다. –

관련 문제