2010-06-03 5 views

Antwort

4

Wenn Sie auf .NET Framework sind 3.5, können Sie eine LINQ-Methode verwenden:

SiteMapNodeCollection pages = SiteMap.RootNode.GetAllNodes(); 
SiteMapNode myPage = pages.SingleOrDefault(page => page.Url == "somePageUrl"); 
1

Wenn Sie auf .NET 2.0 Sie etwas Ähnliches tun: setzen Sie Ihre Knoten in eine (allgemeine) Liste und verwenden Sie Find(...). Entlang der Linien:

string urlToLookFor = "myPageURL"; 
List<SiteMapNode> myListOfNodes = new 
     List<SiteMapNode>(SiteMap.RootNode.GetAllNodes()); 
SiteMapNode foundNode = myListOfNodes.Find(delegate(SiteMapNode currentNode) 
{ 
    return currentNode.Url.ToString().Equals(urlToLookFor); 
}); 

if(foundNode != null) { 
    ... // Node exists 
} 

So müssen Sie nicht manuell iterieren :) Wenn das "besser" ist, ist eine andere Frage.

Verwandte Themen