0

我有一个完整的品牌列表出现在我的 中DropDownBox,但是似乎没有顺序(只是它们如何输入到数据库中),我需要按字母顺序对它们进行排序。

但看起来我不能使用 .Sort(); 在 anIList上似乎没有任何类似的东西ILists所以我有点茫然,我试图将其转换IList为 aList然后使用该List.Sort()方法,但我没有运气,因为它只是返回未排序再次:

public void BrandListRetrieve()
{
    var factory = new BrandFactory();
    var customBool1State = 
          factory.ByCustomBoolean1(false, CoreHttpModule.Session);

    if (customBool1State != null)
    {
        var brandDropDown = CoreHttpModule
                                .Session
                                .CreateCriteria(typeof(Brand)).List<Brand>();

        foreach (Brand brand in brandDropDown)
        {
            this.Items.Add(brand.Name);
        }

        if (this.Items.Count < 0)
        {
            this.Items.Insert(0, new ListItem("Hello World", "Hello World"));
        }

        var brandList = brandDropDown as List<string>;

        if (brandList != null)
            brandList.Sort();
    }
}
4

2 回答 2

2

你应该试试这个;

foreach (Brand brand in brandDropDown.OrderBy(b => b.Name))

您当然可以从代码中删除以下行;

        var brandList = brandDropDown as List<string>;

        if (brandList != null)
            brandList.Sort();
于 2012-10-02T09:48:24.837 回答
-1

看来您需要将 brand.Sort() 与 Compare 方法一起使用。尝试阅读本手册http://msdn.microsoft.com/en-us/library/w56d4y5z.aspx

于 2012-10-02T09:57:51.933 回答