Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何按降序列出对象列表?_C#_.net_Linq_List_C# 4.0 - Fatal编程技术网

C# 如何按降序列出对象列表?

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的每个结果您是否尝

代码:

我想根据EmployeeNumber按降序或降序返回员工。

因为员工是一个匿名类型的列表,所以在填充至少不是强类型的列表后,您无法轻松对其进行排序,但如果使用Select而不是for each,则可以在任何后续linq扩展中使用匿名类型

因此,与其用foreach填充列表,不如先用如下内容对源进行排序:

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();