选择列表未返回排序-C#MVC 3

本文关键字:-C#MVC 排序 返回 列表 选择 | 更新日期: 2024-10-18 18:46:00

全部,

我正在尝试对我的selectlist项目进行排序,然后在列表中预先添加一个默认列表项目,类似于"Select an item Below",并通过一个方法返回该列表。我注意到列表没有被排序,因为根据ReSharper的说法,我需要返回排序的结果,所以我的方法没有返回排序的列表。

有没有一种方法可以在方法中进行排序和预处理?

这是我所拥有的:

       public static IEnumerable<SelectListItem> GetBuildingClubs(List<BuildingClub> localClubs, List<BuildingClub> psfyClubs)
    {
        var buildingClubList = new List<SelectListItem>();
        IEnumerable<BuildingClub> allBuildingClubs = localClubs.Union(psfyClubs);
        foreach (BuildingClub b in allBuildingClubs)
        {

            buildingClubList.Add(new SelectListItem
            {
                Value = b.MasterCustomerId,
                Text = b.NewBuildingClubName
            });

        }
        //Sort list
        buildingClubList.OrderBy(c => c.Text);
        //Prepend to sorted list
        buildingClubList.Insert(0, new SelectListItem
        {
            Value = "",
            Text = "Select an Item Below"
        });
        return buildingClubList;
    }

选择列表未返回排序-C#MVC 3

OrderBy不修改输入列表;它返回一个新的排序序列。您需要存储该序列并使用它来构建您的列表:

buildingClubList = buildingClubList.OrderBy(c => c.Text).ToList();

或者,在将项目添加到列表之前对其进行排序:

IEnumerable<BuildingClub> allBuildingClubs = localClubs.Union(psfyClubs).OrderBy(b => b.NewBuildingClubName);