using System; using System.Collections.Generic; using System.Linq; class Sample { public string Value1 { get; set; } public string Value2 { get; set; } public override string ToString() { return Value1 + "/" + Value2; } } class SampleComparer : IEqualityComparer { public bool Equals(Sample x, Sample y) { return x.Value2 == y.Value2; } public int GetHashCode(Sample obj) { return obj.Value2.GetHashCode(); } } public class Test { public static void Main() { var list = new List() { new Sample{ Value1 = "Apple", Value2="Red" }, new Sample{ Value1 = "Banana", Value2="Yellow" }, new Sample{ Value1 = "Lemon", Value2="Yellow" }, }; list = list.Distinct(new SampleComparer()).ToList(); foreach (var n in list) { Console.WriteLine(n); } } }