如何按整数属性对类列表排序

本文关键字:列表 排序 属性 何按 整数 | 更新日期: 2023-09-27 18:09:33

下面我创建了一个包含4个Person类型元素的列表。我想根据Age属性将Person列表按升序排序。是否有一种优雅的方法可以用LINQ或IComparable(或其他什么)来完成这个任务,这样我就不必从头开始编写自己的算法了?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            List<Person> people = new List<Person>();
            people.Add(new Person("Matthew", 27));
            people.Add(new Person("Mark", 19));
            people.Add(new Person("Luke", 30));
            people.Add(new Person("John", 20));
            // How to sort list by age?
        }
        private class Person
        {
            string Name { get; set; }
            int Age { get; set; }
            public Person(string name, int age)
            {
                Name = name;
                Age = age;
            }
        }
    }
}

如何按整数属性对类列表排序

people.Sort((p1, p2) =>
{
  return p1.Age - p2.Age;
});

试试这个:

List<Person> SortedList = people.OrderBy(o => o.Age).ToList();