C# 获取某个字段进行排序
时间: 2023-09-03 08:07:23 浏览: 44
如果您是想在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 字段进行排序,最后输出排序结果。
c# orderby 多字段排序
在 C# 中,你可以使用 `orderby` 关键字和 `thenby` 关键字对多个字段进行排序。
假设你有一个包含多个字段的对象列表,比如:
```csharp
List<Person> people = new List<Person>()
{
new Person() { FirstName = "John", LastName = "Smith", Age = 25 },
new Person() { FirstName = "Jane", LastName = "Doe", Age = 30 },
new Person() { FirstName = "John", LastName = "Doe", Age = 20 },
new Person() { FirstName = "Jane", LastName = "Smith", Age = 35 }
};
```
你可以使用以下代码按照 `FirstName` 和 `LastName` 字段进行排序:
```csharp
var sortedPeople = people.OrderBy(p => p.FirstName).ThenBy(p => p.LastName);
```
这将按照 `FirstName` 字段进行升序排序,然后在 `FirstName` 字段相同的情况下按照 `LastName` 字段进行升序排序。
如果你想按照某个字段进行降序排序,可以使用 `OrderByDescending` 和 `ThenByDescending` 方法,例如:
```csharp
var sortedPeople = people.OrderByDescending(p => p.Age).ThenBy(p => p.LastName);
```
这将按照 `Age` 字段进行降序排序,然后在 `Age` 字段相同的情况下按照 `LastName` 字段进行升序排序。