using System.Collections.Generic;
public static void Main()
var countryOrder =new List<string> { "UK", "KE", "AU", "USA"};
var data = new List<ExampleDataClass> {
var reducedData = data.GroupBy(x => x.Name)
.Select(g => g.OrderBy(item => countryOrder.IndexOf(item.Country)).First())
foreach (ExampleDataClass item in reducedData)
Console.WriteLine(string.Format("Name: \"{0}\", Country: \"{1}\", Age: {2}", item.Name, item.Country, item.Age));
public string Name { get; set; }
public string Country { get; set; }
public int Age { get; set; }