나는 정렬해야합니다 List(Of MyObject)
있습니다. 따라서 IComparable
, IEquatable
, IEqualityComparer
및 IComparer
을 구현하고 정렬이 올바르게 작동하도록했습니다.오버로드 List.Sort
프로젝트에 대한 새로운 요구 사항이 새로 추가되었습니다. 정렬 된 목록에는 'duplicate'객체를 포함 할 수 없습니다. 이 경우 중복은 정렬 목적으로 중복이 정의 된 방법과 약간 다릅니다. 두 객체를 검사하고 선호 객체를 반환하는 새 루틴을 만들었습니다. 선호하는 값은 하나를 제외하고는 모든 값이 동일하고 마지막 값이 가장 큰 값입니다. 나는이 일과를 잘하고있다. 이제
나는 List
으로 IComparable
인터페이스를 사용하여 정렬 한 후 것 일반적으로 일종의 자체 첫 번째 '중복'을 제거하기 위해 Sort
메서드를 재정의 한 후 IList(Of MyObject)
을 상속 객체를 생성하고하여 '제거 중복'문제를 해결하기 위해 사랑 것 . 그러나, 나는 이것을 어떻게하는지 모른다. 지금까지 읽은 것에서도 가능하지 않은 것 같습니다. SortWithRemove
또는 그런 식으로 별도의 루틴을 작성하여이 문제를 해결할 수 있음을 알고 있지만 재정의가 가능한지 궁금합니다.
편집 : 아래의 제안에 따라 Sort
을 덮어 쓰지 않고 확장 방법을 사용하기로 결정했습니다. 여기 내 코드입니다 :
Public Module Extensions
<System.Runtime.CompilerServices.Extension()> _
Public Sub SortRemovingDuplicates(list As List(Of UniCatalogEntry))
'filter out unwanted records
End Sub
End Module
이 게시물과 같은 일을 시도는 제안 : http://stackoverflow.com/questions/1606679/remove-duplicates-in-the-list-using-linq – Billy
@Billy 나는 것 아니에요 제외 진정으로 중복 된 레코드 다루기. 생각해 줘서 고마워. – cjbarth