using System; using System.Linq; using System.Collections.Generic; public class Test { public static void Main() { var list = new List () { new Fact { Thing = "Roses are", Color = 0xFF0000 }, new Fact { Thing = "Roses are", Color = 0xFF0000 }, new Fact { Thing = "Violets are", Color = 0x0000FF }, new Fact { Thing = "Sugar is", Color = 0x1337 }, new Fact { Thing = "Sugar is", Color = 0x1337 }, }; foreach(var item in GetFacts(list)) { Console.WriteLine ("{0:x} {1:x}", item.Thing, item.Color); } } public static IEnumerable GetFacts(IEnumerable list) { return from x in list group x by new { x.Thing, x.Color } into grp select grp.First(); } } public class Fact { public string Thing { get; set; } public int Color { get; set; } }