Here are a couple of tricks to remove duplication using LINQ.
Firstly, for simple lists:
var numbersWithDuplicates = new[] { "One", "Two", "Two", "Three", "Four" }; var numbers = numbersWithDuplicates.GroupBy(x => x).Select(group => group.First());
…and secondly for more complex objects:
public class Person { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } }
…you can de-duplicate using any property you like:
var peopleWithDuplicates = new[] { new Person { Id = 2, Name = "Alice", Age = 29 }, new Person { Id = 1, Name = "Bob", Age = 30 }, new Person { Id = 3, Name = "Claire", Age = 31 }, new Person { Id = 4, Name = "Bob", Age = 50 }, }; var people = peopleWithDuplicates.GroupBy(x => x.Name).Select(group => group.First());