Sitelerdeki klasik neredeyim "Bread Crumbs" diye tabir edilen kısımdan yapmam gerekiyordu. Aynı zamanda kategorilerden recursive olarak yukarı tırmanmam gerektiğinden dolayı Last-in First-Out stili bir yapıya sahip olamlıydı. Klasik Arraylist vs. bu işi pek kesmeyeceğinden daha doğrusu gereksiz uğraştıracağından basitçe bir Collections.Stack' i inherit eden bir class yazdım.
Kritik bir nokta ben "pop" ile içeridekileri dışarı çıkartıyorum bu durumda içerideki stringi bir defa kullanabilirsiniz daha eğer stringin kalmasını istiyorsanız Enumarator oluşturun, bir diğer konuda biraz daha performans artırmak için string içerideki bir property ye set edebilir ve sadece bir defa başta oluşturabiliriz. Ancak tabii ki bu kodu tamamen nasıl kullanacağınıza bağlı. Örneği vermemin temel sebebi kendi basit işlemlerinizi mevcut .NET Framework' ün inherit edilebilir class' ları aracılığı ile basitçe yapabileceğiniz göstermek istemem.
İşinize yarayabilir;
Public Class BreadCrumb
Inherits Collections.Stack
Sub New ()
MyBase . New ()
End Sub
Public Overloads Sub Add( ByVal Link As String , ByVal Name As String , Optional ByVal Description As String = "" )
MyBase .Push( " <a href="" " & Link & " "" title="" " & Description & " ""> " & Name & " </a> " )
End Sub
Public Shadows Function ToString() As String
Dim breadSBuilder As New StringBuilder( 100 * MyBase .Count)
For i As Integer = 0 To MyBase .Count - 1
breadSBuilder.Append( MyBase .Pop)
If MyBase .Count > 0 Then breadSBuilder.Append( " » " )
Next i
Return breadSBuilder.ToString()
End Function
Public Overloads Sub Add( ByVal Category As CategoryRow)
Add( " /category/? " & Category.ID, Category.Category, Category.Description)
End Sub
End Class
