2013-07-14 4 views
0

색인을 사용하여 array of strings에서 listView에 항목을 추가하려고합니다. 다음 내 코드입니다 :공백을 기준으로 문자와 숫자가 모두 포함 된 문자열 분할

using (StringReader tr = new StringReader(Mystring)) 
{ 
    string Line; 
    while ((Line = tr.ReadLine()) != null) 
    { 
     string[] temp = Line.Split(' '); 
     listview1.Items.Add(new ListViewItem(temp[1], temp[3])); 
    } 
} 

그러나 그것은 index out of bound error을 제공합니다.

나는 그것이 잘 작동하고리스트 뷰에 배열의 내용을 추가

listview1.Items.Add(new ListViewItem(temp)); 

으로 인덱스를 사용하지 않는 경우.

그리고 listView에 인덱스 문자열을 추가합니다. 하나, 둘 또는 다른 인덱스의 경우 동일한 오류가 발생합니다.

색인 또는 다른 방법을 사용하여 listView에 필요한 문자열 만 추가하는 방법을 알려주십시오. 미리 감사드립니다.

+1

'temp [1], temp [3]'은 배열의 두 번째 및 네 번째 요소입니다. 배열에 실제로 4 개의 요소가 있습니까? – Oded

+0

그래, 나는 Oded와 동의한다, 당신은 temp [0], temp [2]를 의미 할 수도있다 – prospector

+2

당신이 추가하려고하는 라인은 어떻게 생겼을 까? 예외를 통해 디버그하여 'temp'의 값이 예외가 throw 될 때 무엇인지 확인 했습니까? – Oded

답변

1

문자열이 줄 바꿈으로 끝나면 빈 줄이 마지막 줄로 표시됩니다.

using (StringReader tr = new StringReader(Mystring)) { 
    string Line; 
    while ((Line = tr.ReadLine()) != null) { 
    if (Line.Length > 0) { 
     string[] temp = Line.Split(' '); 
     listview1.Items.Add(new ListViewItem(temp[1], temp[3])); 
    } 
    } 
} 

Additionaly, 당신은 분할 후 배열의 길이를 확인할 수 있습니다,하지만 난 모든 라인에서 아무것도있을 경우, 그것은 올바른 것이라고 가정 빈 줄을 건너 뜁니다.

+0

이것은 OP를 도울 수있는 좋은 대답 인 것처럼 보이지만 OP의 응답은 없습니다. :) –

+0

감사합니다 Guffa 그것은 나를 위해 일했습니다. 빈 문자열이 문제였습니다. –

관련 문제