Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/268.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# 如何使用OrderBy()2个或多个参数?_C# - Fatal编程技术网

C# 如何使用OrderBy()2个或多个参数?

C# 如何使用OrderBy()2个或多个参数?,c#,C#,例如,我有一个具有3个属性的对象:名称、价格和描述。我需要对这些对象的集合进行排序。只需一个参数即可轻松排序: var sortedList = ObjectCollection.OrderBy(x => x.Name).ToList(); 但是如何通过两个参数(名称和价格)执行排序。例如,我需要这样的列表: ItemName1 $100 SomeDescription ItemName1 $200 AnotherDescription ItemName1 $250 AnotherDes

例如,我有一个具有3个属性的对象:名称、价格和描述。我需要对这些对象的集合进行排序。只需一个参数即可轻松排序:

var sortedList = ObjectCollection.OrderBy(x => x.Name).ToList();
但是如何通过两个参数(名称和价格)执行排序。例如,我需要这样的列表:

ItemName1 $100 SomeDescription
ItemName1 $200 AnotherDescription
ItemName1 $250 AnotherDescription
ItemName2 $20 AnotherDescription
ItemName2 $40 Description
ItemName3 $100 Description

等等。因此,主键是一个名称,但如果有几个项目具有相同的名称,则第二个键是价格。如何执行此操作?

使用
ThenBy
扩展名,因为它不会覆盖以前使用的
OrderBy
调用

var sortedList = ObjectCollection.OrderBy(x => x.Name).ThenBy(x => x.Price).ToList();

使用
ThenBy
扩展名,因为它不会覆盖以前使用的
OrderBy
调用

var sortedList = ObjectCollection.OrderBy(x => x.Name).ThenBy(x => x.Price).ToList();
您需要使用linq

ObjectCollection.OrderBy(x => x.Name).ThenBy(x => x.Price).ToList();
您需要使用linq

ObjectCollection.OrderBy(x => x.Name).ThenBy(x => x.Price).ToList();

使用可枚举。然后使用

var sortedList = ObjectCollection.OrderBy(x => x.Name).ThenBy(x => x.Description).ToList();

使用可枚举。然后使用

var sortedList = ObjectCollection.OrderBy(x => x.Name).ThenBy(x => x.Description).ToList();
您可以像这样将OrderBy或OrderByDescending链接起来。我希望这有帮助

您可以像这样将OrderBy或OrderByDescending链接起来。我希望这对您有所帮助

您可以使用Linq:

ObjectCollection.OrderBy(x => x.Name).
                 ThenBy(x => x.Price).ToList();
如果不能使用Linq,可以编写一个。可以使用Linq:

ObjectCollection.OrderBy(x => x.Name).
                 ThenBy(x => x.Price).ToList();
如果不能使用Linq,可以编写一个