using System.Collections.Generic;
public class MyComparer : IEqualityComparer<string>
public bool Equals(string one, string two)
Console.WriteLine("{0} v.s. {1} => {2}", one, two, one.Equals(two));
public int GetHashCode(string value)
var hash = value.GetHashCode();
Console.WriteLine("hash: {0} => {1}", value, hash);
public static void Main()
Console.WriteLine("Intersections demo\n");
var listOne = new [] {"One","Two", "Three"};
var listTwo = new [] {"One1","Two2", "Three"};
var comparer = new MyComparer();
var intersections = listOne.Intersect(listTwo, comparer).ToList();
if (!intersections.Any())
Console.WriteLine("\nNo intersections.");
Console.WriteLine("\nPlease find intersections below:");
foreach (var item in intersections)
Console.WriteLine(" - {0}", item);