2013-03-25 6 views
0

arrayList에서 listbox을 통해 다른 항목으로 항목을 이동 한 다음 XML에 정보를 인쇄하려고하는 프로그램이 있는데 오류가 있습니다. 반복 할 때가 아니라 값을 반복하는 특정 시간을 자주 추가 할 때.목록 상자에서 선택한 항목이 제대로 작동하지 않습니다.

ArrayList list1 = new ArrayList(); 
ArrayList list2 = new ArrayList(); 
list1.Add(new RandomClass(var1, var2, var3, var4, var5, var6, var7)); 
foreach (object o in list1) 
{ 
    RandomClass m = (RandomClass)o; 
    selectionBox.Items.Add(m); 
} 

이것은 내 초기화 코드입니다.

bool req = true; 

if (selectionBox.SelectedItem != null) 
{ 
    Count++; 
    errorLabel.Text = ""; 

    for (int i = 0; i < selectionBox.Items.Count; i++) 
    { 
     if (selectionBox.GetSelected(i) == true) 
     { 

      RandomClass m = selectionBox.SelectedItem as RandomClass; 
      if (m.var2 == ((RandomClass)selectionBox.Items[i]).var2) 
      { 
       list2.Add(list1[i]); 
      } 
     } 
    } 
} 
else 
{ 
    errorLabel.Text = "Error"; 
} 

여기가 다른 배열 목록에 추가됩니다. 그러나 내가 종종 말했듯이 아이템은 반복 되어도 다르지 않을 것입니다. 어떻게이 문제를 해결할 수 있습니까?

+0

이가 있어야하는 경우 C#으로 다음 난 그냥 간단하게 넣어 추가? 'class m = (class) o;'는 컴파일해서는 안됩니다. – Tejs

+0

@Tejs 죄송합니다. 편집을 잊어 버렸습니다. 비록 – user2157179

답변

0

첫 번째 목록에서 항목을 검색하고 추가 할 때마다 두 번째 목록을 지우십시오.

list2.Clear(); 
for (int i = 0; i < selectionBox.Items.Count; i++) 
.... 
+0

이 목록의 모든 내용을 없애기 때문에 작동하지 않지만 실시간으로 XML에 추가하지 않기 때문에 모든 것을 저장하려고합니다. 어쨌든 선택한 것을 재설정 하시겠습니까? – user2157179

0

내 클래스 목록을 사용하여이 문제를 해결했으며, 문제가 될 것 같지 않습니다.

List<RandomClass> list2 = new List<RandomClass>(); 

그리고 다음 문장

list2.Add(m); 
관련 문제