2016-09-08 14 views
0

나는 그때 만들 lstData에 데이터베이스에서 항목을로드이 코드를 사용 lstOriginal라는 또 다른 목록 상자에이 상태의 사본2 listbox에 동일한 항목 컬렉션이 있는지 확인하는 방법은 무엇입니까?

lstOriginal.Items.Clear() 
    For Each Item In lstData.Items 
     lstOriginal.Items.Add(Item) 
    Next 

그런 다음 사용자는 변경 사항을 추가하거나 lstData와의 항목을 삭제할 수 있습니다 사용자가 UPDATE를 누르십시오. lstData 및 lstOriginal의 항목 모음이 동일한 지 알아야합니다.

변경된 사항에 대해 신경 쓰지 않아도 차이가 있다면 데이터베이스의 전체 항목 컬렉션을 업데이트 할 예정입니다.

그래서 lstData 및 lstOriginal의 항목 모음이 동일한 지 알아야합니다.

내가 아는 유일한 방법은

Dim lstOriginalString as String 
lstOriginalString = "" 
For Each Item In lstOriginal.Items 
     lstOriginalString = lstOriginalString & Item 
Next 

같은 루프가 다음 lstData 또 다른 루프와 간단한 문자열 비교하게,하지만 난 거 간단한 방법이 생각

답변

1

당신은 LINQ를 사용할 수 있습니다 :

: 당신은 심지어 같은 순서로 있는지 알고 싶어하는 경우

Dim isSame As Boolean = lstData.Items.Count = lstOriginal.Items.Count 
If isSame Then 
    Dim newItems = lstData.Items.Cast(Of String)() 
    Dim originalItems = lstOriginal.Items.Cast(Of String)() 
    isSame = Not newItems.Except(originalItems).Any() 
End If 

+0

감사합니다. 내 경우에 정말 잘 했어. – fedeteka

관련 문제