如何对具有特定结构元素的结构列表进行排序

本文关键字:结构 元素 列表 排序 | 更新日期: 2023-09-27 17:50:25

如何正确排序这个结构?

struct Person 
{
    public string Name;
    public int    Age;
}
List<Person> People = new List<Person>();
// Add several hundred records
// sort by age
People.Sort(Person.Age);

如何对具有特定结构元素的结构列表进行排序

您可以在这里使用lambda表达式以及泛型:

  struct Person { 
    public string Name; 
    public int Age; 
  }
  // generic List<T> is much better than deprecated List
  List<Person> People = new List<Person>();
  ...
  People.Sort((x, y) => x.Age - y.Age);

另一个流行的解决方案是Linq,但它创建了一个新的列表,因此可能不是那么有效:

  People = People.OrderBy(x => x.Age).ToList();

您可以使用LINQ的OrderBy方法:

var sortedPeople = People.OrderBy(x => x.Age)
var sortedPeople = People.OrderBy(p => p.Age)
List<Person> res = People.OderBy(x => x.Age).ToList();