lstData의 데이터베이스에서 항목을로드 한 다음이 코드를 사용하여 lstOriginal이라는 다른 목록 상자에이 상태의 복사본을 만듭니다.
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에 대한 또 다른 루프와 간단한 문자열 비교가 있지만 더 간단한 방법이있을 것이라고 생각합니다.
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
동일한 순서인지 알고 싶다면 :
isSame = newItems.SequenceEqual(originalItems)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다