按字母顺序排序和排序

时间:2018-05-09 18:18:46

标签: c# linq

我有以下实现并将人员添加到列表中。但是我想基于角色进行排序,然后根据字母顺序排序。我想知道如何在LINQ中完成。

换句话说,一旦应用了排序和顺序,我需要按顺序查看所有教师项目,但按字母顺序排列。

class Program
{
    class Person
    {
        public Person(string id, string name, string role)
        {
            Id = id;
            Name = name;
        }
        public string Id { get; set; }
        public string Name { get; set; }
    }

    static void Main()
    {
        List<Person> persons = new List<Person>();
        persons.Add(new Person("P005", "Janson", "Teacher"));
        persons.Add(new Person("P137", "Aniket", "Student"));
        persons.Add(new Person("P002", "Aravind", "Teacher"));
        persons.Add(new Person("P007", "Kazhal", "Student"));
        persons.Add(new Person("P017", "Kamikaze", "Teacher"));
        persons.Add(new Person("P417", "Johnson", "Teacher"));
    }
}

2 个答案:

答案 0 :(得分:1)

首先,将Role属性添加到Person类。然后使用linq语句对列表进行排序和排序。

var list = persons.OrderBy(x=>x.Role).ThenBy(x=>x.Name);

答案 1 :(得分:-1)

persons.OrderBy(x =>x.Name).ToList();