With no further introduction, here you have a few "killer" lambdas:
List<int> list1 = new List<int>() { 1, 2 };
List<int> list2 = new List<int>() { 2, 3 };
list1.RemoveAll(c => list2.Contains(c));
//remove from list1 elements that appear as well on list2
list1.RemoveAll(c => !list2.Contains(c));
//remove from list1 elements that don't appear on list2
List<int> tmp = list1.Where(c => list2.Contains(c)).ToList();
//copy into 'tmp' elements from list1 that appear as well on list2
Quite powerfull, isn't it?