我想要按照Product.Name
以降序排序获得一个List
列表。
类似于下面函数按照升序排序,只不过是相反的顺序。这个可行吗?
var newList = list.OrderBy(x => x.Product.Name).ToList();
我想要按照Product.Name
以降序排序获得一个List
列表。
类似于下面函数按照升序排序,只不过是相反的顺序。这个可行吗?
var newList = list.OrderBy(x => x.Product.Name).ToList();
var newList = list.OrderByDescending(x => x.Product.Name).ToList();
文档:OrderByDescending(IEnumerable, Func)。
回应您的评论:
var newList = list.OrderByDescending(x => x.Product.Name)
.ThenBy(x => x.Product.Price)
.ToList();
var newList = list.OrderBy(x => x.Product.Name).Reverse()
这应该能完成任务。
list.OrderByDescending();
对我有效。
看一下我的项目中的代码:
我正在尝试根据模型内部的属性对列表进行重新排序。
allEmployees = new List<Employee>(allEmployees.OrderByDescending(employee => employee.Name));
但是当存在大小写字母时,我遇到了一个问题,为了解决它,我使用了字符串比较器。
allEmployees.OrderBy(employee => employee.Name,StringComparer.CurrentCultureIgnoreCase)
方法1 使用OrderByDescending()
根据指定的键进行排序
List<Product> myList = new() {
new Product("A"),
new Product("Z"),
new Product("C")
};
myList = myList.OrderByDescending(x => x.Name).ToList();
Debug.WriteLine(
$"{myList[0].Name}" + // 'Z'
$"{myList[1].Name}" + // 'C'
$"{myList[2].Name}" // 'A'
);
示例产品
class Product
{
public string Name { get; private set; }
public Product(string Name)
{
this.Name = Name;
}
}
方法二:升序排序并使用 Reverse() 函数
myList = myList.OrderBy(x => x.Name).ToList();
myList.Reverse();
Reverse() 对于像 List<string>
这样的通用类型非常方便。
反转排序字符串列表
List<string> stringList= new() { "A", "Z", "C" };
stringList.Sort();
stringList.Reverse();
list = new List<ProcedureTime>(); sortedList = list.OrderByDescending(ProcedureTime=> ProcedureTime.EndTime).ToList();
这对我来说很有效,可以按降序显示时间。