简体   繁体   English

按字母顺序对导航链接列表进行排序

[英]Sort a list of navigation links alphabetically

I have a list of navigation links that I want to sort alphabetically, but I'm having trouble doing so. 我有一个导航链接列表,我想按字母顺序排序,但是这样做很麻烦。

private void SetMarketDrop(Item CurrentItem)
{
    Item MarketParent = CurrentItem.Axes.SelectSingleItem(@"child::*[@@templatename='gojoMarketGrouping']");
    if (MarketParent == null)
        MarketDropArea.Visible = false;
    else
    {
        MarketHeader.Text = MarketParent.Fields["Home Page  Drop Down"].Value;
        Item[] MarketSet = MarketParent.Axes.SelectItems("descendant-or-self::*[@@templatename='gojoMarketLanding' and @Hidden Page != '1' and @Hide from DropDown != '1']");
        if (MarketSet == null)
            MarketDropArea.Visible = false;
        else
        {
            foreach (Item MarketItem in MarketSet)
                MarketLinks.Text += string.Format("<a href=\"{0}\">{1}</a>", ScHelper.GetRegionPath(MarketItem), MarketItem.Fields["Menu Title"].Value);
        }
    }
}                 

This bit of code displays all the necessary navigation items, but they aren't in the correct order. 这部分代码显示了所有必要的导航项,但是它们的顺序不正确。 I don't know if it would be easier to sort the "Menu Title" fields first then add hyperlinks, or if there is a way to do it in one step. 我不知道先对“菜单标题”字段进行排序然后再添加超链接是否更容易,或者是否有一种方法可以一步完成。 I tried converting what is in the MarketLinks text field to a CharArray and sorting that alphabetically, but it did not work as expected. 我尝试将MarketLinks文本字段中的内容转换为CharArray并按字母顺序对其进行排序,但是它没有按预期工作。

Did you tried something like this? 您是否尝试过类似的方法?

foreach (Item MarketItem in MarketSet.OrderBy(x => x.Fields["Menu Title"].Value))
  MarketLinks.Text += string.Format("<a href=\"{0}\">{1}</a>", ScHelper.GetRegionPath(MarketItem), MarketItem.Fields["Menu Title"].Value);

May the Doctor be with you. 愿医生与您同在。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM