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

时间:2014-12-30 21:34:16

标签: c# sorting

我有一个导航链接列表,我想按字母顺序排序,但我遇到了麻烦。

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);
        }
    }
}                 

这段代码显示了所有必要的导航项,但它们的顺序不正确。我不知道首先对“菜单标题”字段进行排序然后添加超链接是否更容易,或者如果有办法在一个步骤中完成它。我尝试将MarketLinks文本字段中的内容转换为CharArray并按字母顺序排序,但它没有按预期工作。

1 个答案:

答案 0 :(得分:2)

你有没有试过这样的东西?

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);

医生可能和你在一起。