using System.Collections.Generic;
public static void Main()
var firstList = new List<SomeObject> {
new SomeObject { Id = 1, Name = "Rose" } ,
new SomeObject { Id = 2, Name = "Mary" } ,
new SomeObject { Id = 3, Name = "Gozzi" }
var secondList = new List<SomeObject> {
new SomeObject { Id = 1, Name = "Rose" } ,
new SomeObject { Id = 2, Name = "Mary" } ,
new SomeObject { Id = 3, Name = null } ,
var alreadyExistingItemsInSecondList = firstList.SelectMany(p => secondList.Where(q => q.Id == p.Id && q.Name == p.Name));
foreach(var v in alreadyExistingItemsInSecondList)
Console.WriteLine(String.Format("First list item with Id:{0} and Name:{1}",v.Id,v.Name));
public int Id { get; set; }
public string Name { get; set; }