📅  最后修改于: 2023-12-03 14:50:51.809000             🧑  作者: Mango
在 C# 中对对象列表进行排序是一项常见的任务。这可以通过使用 Linq 或实现 IComparable 接口来实现。
Linq 提供了一个非常简单的方法来对对象列表进行排序。以下是一个简单的示例:
List<Person> people = new List<Person>();
// 添加人员到列表中
var sortedPeople = people.OrderBy(person => person.Name);
这将根据 Name
属性对 people
列表进行排序,并将结果存储在变量 sortedPeople
中。您可以按升序或降序排序:
var sortedPeople = people.OrderByDescending(person => person.Name);
IComparable 接口为用户定义的类型提供了排序支持。要对对象列表进行排序,您的对象必须实现此接口。以下是一个简单的示例:
public class Person : IComparable<Person>
{
public string Name { get; set; }
public int Age { get; set; }
public int CompareTo(Person other)
{
return this.Age.CompareTo(other.Age);
}
}
在这个例子中, Person
类实现了 IComparable<Person>
接口,并且 CompareTo()
方法比较年龄,然后返回比较结果。然后您可以在列表中调用 List.Sort()
方法:
List<Person> people = new List<Person>();
// 添加人员到列表中
people.Sort();
这将根据 CompareTo()
方法对 people
列表进行排序。
无论您是使用 Linq 还是实现 IComparable 接口,C# 中对对象列表进行排序都非常方便和快速。通过选择合适的方法,您可以轻松地按照您的需要对列表进行排序。