using System; using System.Collections.Generic; using System.Linq.Expressions; public enum Style : ulong { Foo, Bar, } public class Person { public Style Style { get; set; } } public interface IObjectContainer {} public static class Extensions { public static IMarker Cast (this IObjectContainer container) { return null; } public static IMarker Where (this IMarker marker, Expression> selector) { return null; } } public interface IMarker : IEnumerable {} public class Program { public static void Main () { } public static void Assert (Action a) { } public static void Test (IObjectContainer o, Style s) { Assert (delegate { var res = from Person p in o where 0 == s select p; }); } }