C# 如何按降序列出对象列表?
代码: 我想根据EmployeeNumber按降序或降序返回员工。因为员工是一个匿名类型的列表,所以在填充至少不是强类型的列表后,您无法轻松对其进行排序,但如果使用Select而不是for each,则可以在任何后续linq扩展中使用匿名类型 因此,与其用foreach填充列表,不如先用如下内容对源进行排序:C# 如何按降序列出对象列表?,c#,.net,linq,list,c#-4.0,C#,.net,Linq,List,C# 4.0,代码: 我想根据EmployeeNumber按降序或降序返回员工。因为员工是一个匿名类型的列表,所以在填充至少不是强类型的列表后,您无法轻松对其进行排序,但如果使用Select而不是for each,则可以在任何后续linq扩展中使用匿名类型 因此,与其用foreach填充列表,不如先用如下内容对源进行排序: employees.OrderByDescending(x => x); 注意,此处使用了ToList来创建列表,但您也可以枚举OrderByDescending的每个结果您是否尝
employees.OrderByDescending(x => x);
注意,此处使用了ToList来创建列表,但您也可以枚举OrderByDescending的每个结果您是否尝试过employees.OrderByDescendingx=>x.EmployeeNumber;?EmployeeNumber没有在intellisense中列出…只有equals、gethashcode、gettype和tostring根据名称或编号按顺序列出?我已经尝试过employees.OrderByDescendingx=>x.EmployeeNumber,但EmployeeNumber没有列出…我认为是对象初始值设定项..那些否决的人,至少给出答案。匿名类型列表1我猜Cast方法会将其转换为列表,以便正常使用,因为匿名类型列表在方法之外非常不可用,并且与创建时的列表中的employees变量兼容?@RoyalBg,由于OP以JSON的形式返回结果,我假设他不需要强类型,因此cast是创建列表的最简单方法。另一种方法是枚举orderbydescending结果并将这些条目添加到对象列表中。您的解决方案非常好。正是我需要的。非常感谢你。
employees.OrderByDescending(x => x);
employees = employeeList.Select(employee =>
{
var record = .....;
var number = record.Select(x => x.number).FirstOrDefault();
var name = record.Select(x => x.name).FirstOrDefault();
return
new
{
EmployeeNumber = number,
EmployeeName = name
};
}).OrderByDescending(e => e.EmployeeNumber).Cast<object>().ToList();