using System; using System.Linq; using System.Collections.Generic; public class Test { interface IId {int Id {get;}} class A : IId { public int Id {get;set;} public override string ToString() { return "A"+Id; } } class B : IId { public int Id {get;set;} public override string ToString() { return "B"+Id; } } public static void Main() { var a = new List {new A {Id=5}, new A {Id=6}}; var b = new List {new B {Id=7}, new B {Id=8}}; var all = new List> {a, b}; var item3 = all.SelectMany(list => list).FirstOrDefault(item => item.Id == 3); var item5 = all.SelectMany(list => list).FirstOrDefault(item => item.Id == 5); var item7 = all.SelectMany(list => list).FirstOrDefault(item => item.Id == 7); Console.WriteLine("3:'{0}' 5:'{1}' 7:'{2}'", item3, item5, item7); } }