public class Person { public string Name { get; set; } public string Gender { get; set; } } List<Person> people = new List<Person> { new Person { Name = "John", Gender = "Male" }, new Person { Name = "Jane", Gender = "Female" }, new Person { Name = "Bob", Gender = "Male" }, new Person { Name = "Alice", Gender = "Female" } }; var groupedPeople = from person in people group person by person.Gender; foreach (var group in groupedPeople) { Console.WriteLine(group.Key); foreach (Person person in group) { Console.WriteLine("- " + person.Name); } }