Public Class Form1
Public TileCache As New List(Of TileCacheDescriptor)
Structure TileCacheDescriptor
Public TileURL As String
Public TileLayer As String
Public TileImage As Image
End Structure
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim TileDetails As New TileCacheDescriptor
TileDetails.TileImage = ThisMap.TileGrid(c - Col + w, T - CentreTile + w).TileImage
TileDetails.TileURL = "testURL1" 'src
TileDetails.TileLayer = "testLayer1" 'Layer
TileCache.Add(TileDetails)
TileDetails = New TileCacheDescriptor
TileDetails.TileImage = ThisMap.TileGrid(c - Col + w, T - CentreTile + w).TileImage
TileDetails.TileURL = "testURL2" 'src
TileDetails.TileLayer = "testLayer2" 'Layer
TileCache.Add(TileDetails)
TileDetails = New TileCacheDescriptor
TileDetails.TileImage = ThisMap.TileGrid(c - Col + w, T - CentreTile + w).TileImage
TileDetails.TileURL = "testURL3" 'src
TileDetails.TileLayer = "testLayer3" 'Layer
TileCache.Add(TileDetails)
TileDetails = New TileCacheDescriptor
TileDetails.TileImage = ThisMap.TileGrid(c - Col + w, T - CentreTile + w).TileImage
TileDetails.TileURL = "testURL4" 'src
TileDetails.TileLayer = "testLayer4" 'Layer
TileCache.Add(TileDetails)
Dim c As New comparer
c.sortBy = comparer.sortOptions.TileURL
TileCache.Sort(c)
PictureBox1.Image = Array.Find(TileCache.ToArray, Function(item As TileCacheDescriptor) item.TileURL = "testURL4").TileImage
End Sub
End Class
Public Class comparer
Implements System.Collections.Generic.IComparer(Of WindowsApplication1.Form1.TileCacheDescriptor)
Public Enum sortOptions
TileURL
TileLayer
End Enum
Private _sortBy As sortOptions
Public Property sortBy() As sortOptions
Get
Return _sortBy
End Get
Set(ByVal value As sortOptions)
_sortBy = value
End Set
End Property
Public Function Compare(ByVal x As Form1.TileCacheDescriptor, ByVal y As Form1.TileCacheDescriptor) As Integer Implements System.Collections.Generic.IComparer(Of Form1.TileCacheDescriptor).Compare
If _sortBy = sortOptions.TileURL Then
Return x.TileURL.CompareTo(y.TileURL)
ElseIf _sortBy = sortOptions.TileLayer Then
Return x.TileLayer.CompareTo(y.TileLayer)
End If
End Function
End Class