using System.Collections.Generic;
public static void Main()
var people = new List<Person>{
new Person { FirstName = "Erik", LastName = "Philips" },
new Person { FirstName = "Tom", LastName = "Philips" },
new Person { FirstName = "Tom", LastName = "Petty" },
new Person { FirstName = "Tom", LastName = "Petty" }
var grps = people.GroupBy(x => x.LastName)
Console.WriteLine("Number of Groups: {0}", grps.Count);
Console.WriteLine("Number of people with last name {0}: {1}", grp.Count(), grp.Key);
foreach(var person in grp)
Console.WriteLine("{0} {1}", person.FirstName, person.LastName);
Console.WriteLine(grp.Except(new List<Person> { person }).Any(g => g.FirstName == person.FirstName));
public string FirstName { get; set; }
public string LastName { get; set; }