我打麻将の研究室

Programming Memo

概要

ツール開発などにおいて困ったポイントなどを抽象化して蓄積する。 ほぼ私用。

自作クラスのソート

自作クラス myClass のオブジェクトからなる ArrayList をソートする。

IComparable

IComparable インターフェイスを利用する。


Public Class myClass
    Implements System.IComparable
    Public Function CompareTo(ByVal Obj As Object) As Integer Implements IComparable.CompareTo
        ' 自分自身のインスタンスが Obj に比べて大きい時に正、小さい時に負、等しい時にゼロを返す
    End Function
End Class

Sub Main()
    Dim myList As New ArrayList
    ' myListmyClass 型の要素を追加
    myList.Sort()
End Sub

IComparer

IComparer インターフェイスを利用する。


Public Class myComparer
    Implements System.Collections.IComparer
    Public Function Compare(ByVal x As myClass, ByVal y As myClass) As Integer
        ' xy に比べて大きい時に正、小さい時に負、等しい時にゼロを返す
    End Function
End Class

Sub Main()
    Dim myList As New ArrayList
    ' myListmyClass 型の要素を追加
    Dim comparer As New myComparer
    myList.Sort(comparer)
End Sub