using System.Collections.Generic;
public static void Main()
List<Class1> list1 = new List<Class1>();
List<Class2> list2 = new List<Class2>();
list1.Add(new Class1 { Name = "name1" });
list1.Add(new Class1 { Name = "name2" });
list2.Add(new Class2 { Name = "name2" });
list2.Add(new Class2 { Name = "name3" });
list2.Add(new Class2 { Name = "name1" });
var distItems = list1.Select(s1 => new Class1 { Name = s1.Name }).Where(w => list2.Select(s2 => s2.Name).Contains(w.Name)).ToList();
foreach(var item in distItems) {
Console.WriteLine(item.Name);