📌  相关文章
📜  在 c# 中对对象列表进行排序(1)

📅  最后修改于: 2023-12-03 14:50:51.809000             🧑  作者: Mango

在 C# 中对对象列表进行排序

在 C# 中对对象列表进行排序是一项常见的任务。这可以通过使用 Linq 或实现 IComparable 接口来实现。

使用 Linq 进行排序

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 接口

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# 中对对象列表进行排序都非常方便和快速。通过选择合适的方法,您可以轻松地按照您的需要对列表进行排序。