using System; using System.Collections.Generic; using System.Linq.Expressions; class Foo { public bool ContainsAll (IEnumerable items) where U : T { Func d = delegate () { foreach (U item in items) { Expression> e = () => !Contains (item); if (!e.Compile () ()) return false; } return true; }; return d (); } public bool Contains (T t) { return false; } } class Program { public static int Main () { var x = new Foo (); return x.ContainsAll (new [] { 4, 6, 78 }) ? 0 : 1; } }