using System.Collections.Generic;
public static void Main()
var list = new List<Order> {
new Order { Id = 1, IsComplete = true },
new Order { Id = 2, IsComplete = false },
new Order { Id = 2, IsComplete = true },
new Order { Id = 3, IsComplete = true },
new Order { Id = 4, IsComplete = true },
new Order { Id = 5, IsComplete = false }
var duplicates = list.GroupBy(s => s.Id)
.Where(g => g.Count() > 1)
if (duplicates.Count() > 0)
foreach (var dupe in duplicates)
Console.WriteLine("Duplicates: {0}", string.Join(", ", duplicates.ToArray()));
public int Id { get; set; }
public bool IsComplete { get; set; }
public override string ToString()
return string.Format("Id: {0}, IsComplete: {1}", Id, IsComplete);