2012-10-26 6 views
0

다음 코드는 서버에서 온 문자열에서 listitem을 생성해야합니다. 문자열 배열 "년"이있는 경우listitem에서 부정확 한 값

foreach (String str in years) 
      { 

       if (string.IsNullOrEmpty(str) || str.Equals(" ")) 
       { 
        System.Diagnostics.Debug.WriteLine("empty"); 
       } 
       else 
       { 
        System.Diagnostics.Debug.WriteLine(str); 
        yearLi.Value = str; 
        yearList.Add(yearLi); 
        count = yearList.Count; 
       } 
       System.Diagnostics.Debug.WriteLine("count-->" + count); 

      } 

이제 내 문제는, {2011,2012} 목록은 2011 년과 2012해야하지만 2012,2012를 가지고 다음과 같이 코드입니다. 이 코드에서 오류를 찾을 수 없습니다. 제발 조언.

+1

'years '을 초기화하는 방법을 보여주세요. – egrunin

답변

8

루프를 통해 매번 동일한 yearLi 개체를 재사용하고 있습니다. 이 작업을 수행 할 때 :

yearList.Add(yearLi); 

매번 동일한 개체를 추가하고 있습니다. 다음에 루프를 통해 변경하면 목록의 모든 셀에서 변경됩니다 (동일한 객체에 대한 참조이기 때문에).

루프에 인스턴스화 된 새 클래스 yearLi (필요한 모든 클래스)이 필요합니다.

+0

그래요. 당신은 절대적으로 맞습니다. 고맙습니다. – Naga

관련 문제