c# orderby 多字段排序
时间: 2023-07-20 07:26:07 浏览: 57
在C#中,你可以使用`OrderBy`和`ThenBy`方法来进行多字段排序。`OrderBy`用于对第一个关键字进行排序,而`ThenBy`用于对第二个及后续的关键字进行排序。
下面是一个示例,演示如何按照两个字段进行排序:
```
var sortedList = myList.OrderBy(x => x.FirstName)
.ThenBy(x => x.LastName)
.ToList();
```
在此示例中,我们首先按照`FirstName`字段排序,然后按照`LastName`字段排序。你可以根据需要添加更多的`.ThenBy`方法来进行更多的排序。
请注意,`OrderBy`和`ThenBy`方法默认按升序排序。如果你需要按降序排序,请使用`OrderByDescending`和`ThenByDescending`方法。
相关问题
C# 获取某个字段进行排序
如果您是想在C#中对某个字段进行排序,您可以使用LINQ(语言集成查询)来实现。以下是一个示例,假设您有一个名为“Person”的类,其中有一个名为“Age”的整数字段,您希望按照这个字段进行排序:
```csharp
List<Person> people = new List<Person>();
// 添加一些人物到列表中
people.Add(new Person("John", 25));
people.Add(new Person("Jane", 30));
people.Add(new Person("Bob", 20));
// 使用 LINQ 对年龄进行升序排列
var sortedPeople = people.OrderBy(p => p.Age);
// 输出排序后的结果
foreach (var person in sortedPeople)
{
Console.WriteLine(person.Name + " - " + person.Age);
}
```
上面的代码将按照年龄升序排列人物,并输出排序后的结果。请注意,您需要使用 `OrderBy` 方法,其中的 `p => p.Age` 表示按照 `Age` 字段进行排序。如果您想按照降序排列,可以使用 `OrderByDescending` 方法。
C# Sort获取某个字段进行排序
你可以使用 `OrderBy` 和 `ThenBy` 方法来按照指定的字段进行排序,例如:
```csharp
// 定义一个类用于排序
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
// 定义一个列表用于排序
List<Person> people = new List<Person>()
{
new Person() { Name = "Tom", Age = 20 },
new Person() { Name = "Alice", Age = 25 },
new Person() { Name = "Bob", Age = 20 },
};
// 按照 Age 字段进行排序,如果 Age 相同则按照 Name 字段排序
var sortedPeople = people.OrderBy(p => p.Age).ThenBy(p => p.Name);
// 输出排序结果
foreach (var person in sortedPeople)
{
Console.WriteLine(person.Name + " " + person.Age);
}
```
上述代码中,我们定义了一个 `Person` 类作为排序的对象,包含了 `Name` 和 `Age` 两个字段。接着定义了一个 `List<Person>` 类型的列表用于排序。我们使用 `OrderBy` 和 `ThenBy` 方法来按照 Age 和 Name 字段进行排序,最后输出排序结果。