UFO ET IT

VB에서 개체 목록을 정렬합니다.그물

ufoet 2023. 5. 13. 20:28
반응형

VB에서 개체 목록을 정렬합니다.그물

승객(물건)의 목록을 가지고 있는데 특성이 다릅니다.

passenger.name
passenger.age
passenger.surname

그리고 저는 이 목록을 나이 기준으로 분류하고 싶습니다. 어떻게 해야 할까요?

정수/문자열 목록에서 알고 있습니다.Sort()는 작동하지만, 만약 객체 목록이라면, 객체 속성의 값으로 정렬하는 것이 가능한지 모르겠습니다!

감사해요.

개체의 속성을 기준으로 정렬하려면 해당 속성을 가져올 비교 또는 메서드를 지정해야 합니다.

사용List.Sort방법:

theList.Sort(Function(x, y) x.age.CompareTo(y.age))

사용OrderBy확장 방법:

theList = theList.OrderBy(Function(x) x.age).ToList()

사용자 지정 문자열 정렬이 필요한 경우 지정한 순서에 따라 숫자를 반환하는 함수를 만들 수 있습니다.

예를 들어, 저는 앞면 또는 걸쇠를 기준으로 정렬하고 싶은 사진이 있었습니다.그래서 저는 다음과 같이 했습니다.

Private Function sortpictures(s As String) As Integer
    If Regex.IsMatch(s, "FRONT") Then
        Return 0
    ElseIf Regex.IsMatch(s, "SIDE") Then
        Return 1
    ElseIf Regex.IsMatch(s, "CLASP") Then
        Return 2
    Else
        Return 3
    End If
End Function

그런 다음 정렬 함수를 다음과 같이 부릅니다.

list.Sort(Function(elA As String, elB As String)
                  Return sortpictures(elA).CompareTo(sortpictures(elB))
              End Function)

I 비교기 인터페이스를 구현해야 합니다.

이 샘플에서 사용자 지정 개체 JSONReturn을 사용하여 클래스를 다음과 같이 구현합니다.

Friend Class JSONReturnComparer
    Implements IComparer(of JSONReturn)

    Public Function Compare(x As JSONReturn, y As JSONReturn) As Integer Implements    IComparer(Of JSONReturn).Compare
        Return String.Compare(x.Name, y.Name)
    End Function

End Class

나는 나의 정렬 목록 메소드를 alResult라고 부릅니다.정렬(새 JSONReturnComparer())

어쩌면 당신에게 도움이 될 수도 있습니다.

시도..

DimsortedList = MyList의 From 항목 Order By entry.name 오름차순 선택 항목

mylist = sortedList.받는 사람 목록

언급URL : https://stackoverflow.com/questions/11735902/sort-a-list-of-object-in-vb-net

반응형