Asp.net mvc 使用LINQ对SelectListItem的列表进行排序

Asp.net mvc 使用LINQ对SelectListItem的列表进行排序,asp.net-mvc,linq,sorting,Asp.net Mvc,Linq,Sorting,我正在尝试使用LINQ对SelectListItem的列表进行排序,但没有成功 For Each item In query brandCategoryList.Add(New SelectListItem With { .Text = FriendlyCategory(item), .Value = item

我正在尝试使用LINQ对SelectListItem的列表进行排序,但没有成功

 For Each item In query
            brandCategoryList.Add(New SelectListItem With {
                            .Text = FriendlyCategory(item),
                            .Value = item
                          })
        Next
        brandCategoryList.OrderBy(Function(m) m.Text)
我做错了什么?结果将按原始顺序返回,就像未调用OrderBy函数一样。提前谢谢

怎么样

brandCategoryList = query.Select(Function(x) new SelectListItem With {
                                             .Text = FriendlyCategory(item),
                                             .Value = item}).OrderBy(Function(m) m.Text).ToList();
怎么样

brandCategoryList = query.Select(Function(x) new SelectListItem With {
                                             .Text = FriendlyCategory(item),
                                             .Value = item}).OrderBy(Function(m) m.Text).ToList();

您可以使用
Sort()

brandCategoryList.Sort(函数(a,b)a.Text
您可以使用
Sort()

brandCategoryList.Sort(函数(a,b)a.Text
对于我来说,使用Linq对SelectItemList进行排序的最简单方法是:

brandCategoryList.OrderBy(x => x.Text);
如果你想按文本排序

如果要按值排序,则为相同但为x。值:

brandCategoryList.OrderBy(x => x.Value);

对我来说,使用Linq对SelectItemList排序的最简单方法是:

brandCategoryList.OrderBy(x => x.Text);
如果你想按文本排序

如果要按值排序,则为相同但为x。值:

brandCategoryList.OrderBy(x => x.Value);

代码似乎是正确的,这正是问题所在?我的意思是,实际和期望的输出是什么?OrderBy不会对列表进行排序,它会返回一个有序的IENUEMRABLEES,OrderBy不会编辑源列表。您可能需要创建一个新的
brandCategoryList=brandCategoryList.OrderBy(函数(m)m.Text).ToList()
请参阅我的答案以了解替代的就地排序方法brandCategoryList=brandCategoryList.OrderBy(函数(m)m.Text).ToList()返回以下错误:无法将类型为“System.Linq.OrderedEnumerable
2[System.Web.Mvc.SelectListItem,System.String]”的对象强制转换为类型System.Collections.Generic.List
1[System.Web.Mvc.SelectListItem]”。代码似乎正确,这正是问题所在?我的意思是,实际和期望的输出是什么?OrderBy不会对列表进行排序,它会返回一个有序的IENUEMRABLEES,OrderBy不会编辑源列表。您可能需要创建一个新的
brandCategoryList=brandCategoryList.OrderBy(函数(m)m.Text).ToList()
请参阅我的答案以了解替代的就地排序方法brandCategoryList=brandCategoryList.OrderBy(函数(m)m.Text).ToList()返回以下错误:无法将类型为“System.Linq.OrderedEnumerable
2[System.Web.Mvc.SelectListItem,System.String]”的对象强制转换为类型System.Collections.Generic.List
1[System.Web.Mvc.SelectListItem]'。此操作有效,但按降序返回已排序的列表。嗯。现在要将其改为升序?只需颠倒顺序以升序排列brandCategoryList.sort(函数(a,b)b.Text>a.Text)感谢所有帮助过它的人!很抱歉,我使用了
而不是
,这很有效,但按降序返回了已排序的列表。嗯。现在要将其改为升序?只需颠倒顺序以升序排列brandCategoryList.sort(函数(a,b)b.Text>a.Text)感谢所有帮助过它的人!对不起,我用了
而不是