How to use LINQ to group and order items in a list by a property value in C#? - Biz Tech

How to use LINQ to group and order items in a list by a property value in C#?

Listen
 public class Person
{
    public string Name { get; set; }
    public string Gender { get; set; }
    public int Age { get; set; }
}

List<Person> people = new List<Person>
{
    new Person { Name = "John", Gender = "Male", Age = 30 },
    new Person { Name = "Jane", Gender = "Female", Age = 25 },
    new Person { Name = "Bob", Gender = "Male", Age = 35 }
};

var groupedAndOrderedPeople = from person in people
                              group person by person.Gender into g
                              orderby g.Key descending
                              select g;

foreach (var group in groupedAndOrderedPeople)
{
    Console.WriteLine(group.Key);
    foreach (Person person in group)
    {
        Console.WriteLine("- " + person.Name);
    }
}